0s autopkgtest [09:28:37]: starting date and time: 2025-11-02 09:28:37+0000 0s autopkgtest [09:28:37]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [09:28:37]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.rymj46pu/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --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 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-amd64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@sto01-8.secgroup --name adt-resolute-amd64-libjson-schema-modern-perl-20251102-092837-juju-7f2275-prod-proposed-migration-environment-15-e8d53987-bc14-47c3-b095-c393278aafbd --image adt/ubuntu-resolute-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-autopkgtest-workers-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-amd64-libjson-schema-modern-perl-20251102-092837-juju-7f2275-prod-proposed-migration-environment-15-e8d53987-bc14-47c3-b095-c393278aafbd from image adt/ubuntu-resolute-amd64-server-20251101.img (UUID 52e48a54-2032-4a7c-9d86-f677995aa72b)... 27s autopkgtest [09:29:04]: testbed dpkg architecture: amd64 27s autopkgtest [09:29:04]: testbed apt version: 3.1.11 27s autopkgtest [09:29:04]: @@@@@@@@@@@@@@@@@@@@ test bed setup 27s autopkgtest [09:29:04]: testbed release detected to be: None 28s autopkgtest [09:29:05]: updating testbed package index (apt update) 28s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 28s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 28s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 28s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 28s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [43.7 kB] 28s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [107 kB] 28s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [9848 B] 28s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1387 kB] 28s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [161 kB] 28s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [112 kB] 28s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 c-n-f Metadata [4440 B] 28s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted i386 Packages [3744 B] 28s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 Packages [64.6 kB] 29s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 c-n-f Metadata [336 B] 29s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/universe i386 Packages [390 kB] 29s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [1038 kB] 29s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 c-n-f Metadata [34.8 kB] 29s Get:18 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse i386 Packages [8844 B] 29s Get:19 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 Packages [29.3 kB] 29s Get:20 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 c-n-f Metadata [1672 B] 29s Fetched 3484 kB in 1s (3778 kB/s) 30s Reading package lists... 30s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 30s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 30s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 30s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 31s Reading package lists... 31s Reading package lists... 31s Building dependency tree... 31s Reading state information... 31s Calculating upgrade... 31s The following packages will be upgraded: 31s apparmor intel-microcode libapparmor1 libexpat1 libffi8 libuv1t64 31s 6 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 31s Need to get 12.5 MB of archives. 31s After this operation, 8192 B of additional disk space will be used. 31s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 libexpat1 amd64 2.7.3-1 [91.4 kB] 31s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 libapparmor1 amd64 5.0.0~alpha1-0ubuntu9 [57.7 kB] 31s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 libffi8 amd64 3.5.2-2 [25.6 kB] 31s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 apparmor amd64 5.0.0~alpha1-0ubuntu9 [711 kB] 32s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 libuv1t64 amd64 1.51.0-2ubuntu1 [103 kB] 32s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 intel-microcode amd64 3.20250812.1ubuntu1 [11.5 MB] 34s dpkg-preconfigure: unable to re-open stdin: No such file or directory 34s Fetched 12.5 MB in 2s (5220 kB/s) 34s (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 ... 78534 files and directories currently installed.) 34s Preparing to unpack .../0-libexpat1_2.7.3-1_amd64.deb ... 34s Unpacking libexpat1:amd64 (2.7.3-1) over (2.7.1-2) ... 34s Preparing to unpack .../1-libapparmor1_5.0.0~alpha1-0ubuntu9_amd64.deb ... 34s Unpacking libapparmor1:amd64 (5.0.0~alpha1-0ubuntu9) over (5.0.0~alpha1-0ubuntu8.1) ... 34s Preparing to unpack .../2-libffi8_3.5.2-2_amd64.deb ... 34s Unpacking libffi8:amd64 (3.5.2-2) over (3.5.2-1build1) ... 34s Preparing to unpack .../3-apparmor_5.0.0~alpha1-0ubuntu9_amd64.deb ... 34s Unpacking apparmor (5.0.0~alpha1-0ubuntu9) over (5.0.0~alpha1-0ubuntu8.1) ... 35s Preparing to unpack .../4-libuv1t64_1.51.0-2ubuntu1_amd64.deb ... 35s Unpacking libuv1t64:amd64 (1.51.0-2ubuntu1) over (1.50.0-2ubuntu1) ... 35s Preparing to unpack .../5-intel-microcode_3.20250812.1ubuntu1_amd64.deb ... 35s Unpacking intel-microcode (3.20250812.1ubuntu1) over (3.20250512.1ubuntu1) ... 35s Setting up libexpat1:amd64 (2.7.3-1) ... 35s Setting up libapparmor1:amd64 (5.0.0~alpha1-0ubuntu9) ... 35s Setting up intel-microcode (3.20250812.1ubuntu1) ... 35s intel-microcode: microcode will be updated at next boot 35s Setting up libuv1t64:amd64 (1.51.0-2ubuntu1) ... 35s Setting up apparmor (5.0.0~alpha1-0ubuntu9) ... 35s Installing new version of config file /etc/apparmor.d/lsblk ... 35s Installing new version of config file /etc/apparmor.d/systemd-detect-virt ... 35s Installing new version of config file /etc/apparmor.d/tnftp ... 36s Reloading AppArmor profiles 37s Setting up libffi8:amd64 (3.5.2-2) ... 37s Processing triggers for libc-bin (2.42-0ubuntu3) ... 37s Processing triggers for systemd (257.9-0ubuntu2) ... 37s Processing triggers for man-db (2.13.1-1) ... 38s Processing triggers for procps (2:4.0.4-8ubuntu3) ... 38s Processing triggers for initramfs-tools (0.150ubuntu4) ... 38s update-initramfs: Generating /boot/initrd.img-6.17.0-5-generic 42s autopkgtest [09:29:19]: upgrading testbed (apt dist-upgrade and autopurge) 42s Reading package lists... 42s Building dependency tree... 42s Reading state information... 42s Calculating upgrade... 42s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 42s Reading package lists... 43s Building dependency tree... 43s Reading state information... 43s Solving dependencies... 43s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 43s autopkgtest [09:29:20]: rebooting testbed after setup commands that affected boot 57s autopkgtest [09:29:34]: testbed running kernel: Linux 6.17.0-5-generic #5-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 10:00:33 UTC 2025 59s autopkgtest [09:29:36]: @@@@@@@@@@@@@@@@@@@@ apt-source libjson-schema-modern-perl 61s Get:1 http://ftpmaster.internal/ubuntu resolute/universe libjson-schema-modern-perl 0.620-1 (dsc) [4080 B] 61s Get:2 http://ftpmaster.internal/ubuntu resolute/universe libjson-schema-modern-perl 0.620-1 (tar) [226 kB] 61s Get:3 http://ftpmaster.internal/ubuntu resolute/universe libjson-schema-modern-perl 0.620-1 (diff) [7968 B] 61s gpgv: Signature made Tue Oct 21 19:56:44 2025 UTC 61s gpgv: using RSA key D1E1316E93A760A8104D85FABB3A68018649AA06 61s gpgv: Can't check signature: No public key 61s dpkg-source: warning: cannot verify inline signature for ./libjson-schema-modern-perl_0.620-1.dsc: no acceptable signature found 61s autopkgtest [09:29:38]: testing package libjson-schema-modern-perl version 0.620-1 61s autopkgtest [09:29:38]: build not needed 62s autopkgtest [09:29:39]: test autodep8-perl-build-deps: preparing testbed 62s Reading package lists... 62s Building dependency tree... 62s Reading state information... 62s Solving dependencies... 62s The following NEW packages will be installed: 62s autoconf autodep8 automake autopoint autotools-dev build-essential cpp 62s cpp-15 cpp-15-x86-64-linux-gnu cpp-x86-64-linux-gnu dctrl-tools debhelper 62s debugedit dh-autoreconf dh-strip-nondeterminism dwz g++ g++-15 62s g++-15-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-15 62s gcc-15-x86-64-linux-gnu gcc-x86-64-linux-gnu gettext git git-man 62s intltool-debian javascript-common libalgorithm-c3-perl libarchive-zip-perl 62s libasan8 libautovivification-perl libb-hooks-endofscope-perl 62s libb-hooks-op-check-perl libbuiltin-compat-perl libcc1-0 libclass-c3-perl 62s libclass-data-inheritable-perl libclass-inspector-perl 62s libclass-method-modifiers-perl libclass-singleton-perl libclass-tiny-perl 62s libclass-xsaccessor-perl libclone-perl libclone-pp-perl 62s libcpan-meta-check-perl libcpan-requirements-dynamic-perl 62s libcpanel-json-xs-perl libdata-optlist-perl libdata-validate-domain-perl 62s libdatetime-format-rfc3339-perl libdatetime-locale-perl libdatetime-perl 62s libdatetime-timezone-perl libdebhelper-perl libdevel-callchecker-perl 62s libdevel-cycle-perl libdevel-stacktrace-perl libdynaloader-functions-perl 62s libemail-address-xs-perl liberror-perl libeval-closure-perl 62s libexception-class-perl libexporter-tiny-perl libextutils-config-perl 62s libextutils-hascompiler-perl libextutils-helpers-perl 62s libextutils-installpaths-perl libfeature-compat-try-perl libfile-chdir-perl 62s libfile-copy-recursive-perl libfile-sharedir-perl 62s libfile-stripnondeterminism-perl libgcc-15-dev 62s libgetopt-long-descriptive-perl libgit-wrapper-perl libgomp1 libhwasan0 62s libimport-into-perl libio-stringy-perl libisl23 libitm1 libjs-bootstrap5 62s libjs-highlight.js libjs-popper.js libjson-perl libjson-schema-modern-perl 62s liblsan0 libmodule-build-tiny-perl libmodule-implementation-perl 62s libmodule-runtime-perl libmojolicious-perl libmoo-perl libmoox-typetiny-perl 62s libmpc3 libmro-compat-perl libnamespace-autoclean-perl 62s libnamespace-clean-perl libnet-domain-tld-perl libnet-idn-encode-perl 62s libpackage-stash-perl libpadwalker-perl libparams-classify-perl 62s libparams-util-perl libparams-validate-perl 62s libparams-validationcompiler-perl libpath-tiny-perl libquadmath0 62s libref-util-perl libref-util-xs-perl librole-tiny-perl libsafe-isa-perl 62s libscope-guard-perl libsereal-decoder-perl libsereal-encoder-perl 62s libsereal-perl libsort-versions-perl libspecio-perl libstdc++-15-dev 62s libstrictures-perl libsub-exporter-perl libsub-exporter-progressive-perl 62s libsub-identify-perl libsub-install-perl libsub-name-perl libsub-quote-perl 62s libsyntax-keyword-try-perl libtest-deep-perl 62s libtest-deep-unorderedpairs-perl libtest-fatal-perl 62s libtest-file-sharedir-perl libtest-json-schema-acceptance-perl 62s libtest-memory-cycle-perl libtest-needs-perl libtest-warnings-perl 62s libtest-without-module-perl libtest2-suite-perl libtime-moment-perl libtool 62s libtry-tiny-perl libtsan2 libtype-tiny-perl libtype-tiny-xs-perl libubsan1 62s libvariable-magic-perl libxs-parse-keyword-perl libxstring-perl 62s libyaml-pp-perl m4 node-popper2 pkg-perl-autopkgtest po-debconf 63s 0 upgraded, 153 newly installed, 0 to remove and 0 not upgraded. 63s Need to get 88.9 MB of archives. 63s After this operation, 337 MB of additional disk space will be used. 63s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 m4 amd64 1.4.20-2 [217 kB] 63s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 autoconf all 2.72-3.1ubuntu1 [384 kB] 63s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 dctrl-tools amd64 2.24-3build3 [106 kB] 63s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 autodep8 all 0.30 [13.7 kB] 63s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 autotools-dev all 20240727.1 [43.4 kB] 63s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 automake all 1:1.18.1-2 [581 kB] 63s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 autopoint all 0.23.1-2build2 [619 kB] 63s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 libisl23 amd64 0.27-1 [685 kB] 63s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 libmpc3 amd64 1.3.1-1build3 [57.0 kB] 63s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-15-x86-64-linux-gnu amd64 15.2.0-7ubuntu1 [12.9 MB] 63s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-15 amd64 15.2.0-7ubuntu1 [1026 B] 63s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [5746 B] 63s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp amd64 4:15.2.0-4ubuntu1 [22.4 kB] 63s Get:14 http://ftpmaster.internal/ubuntu resolute/main amd64 libcc1-0 amd64 15.2.0-7ubuntu1 [47.4 kB] 63s Get:15 http://ftpmaster.internal/ubuntu resolute/main amd64 libgomp1 amd64 15.2.0-7ubuntu1 [151 kB] 63s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 libitm1 amd64 15.2.0-7ubuntu1 [29.7 kB] 63s Get:17 http://ftpmaster.internal/ubuntu resolute/main amd64 libasan8 amd64 15.2.0-7ubuntu1 [3071 kB] 63s Get:18 http://ftpmaster.internal/ubuntu resolute/main amd64 liblsan0 amd64 15.2.0-7ubuntu1 [1360 kB] 63s Get:19 http://ftpmaster.internal/ubuntu resolute/main amd64 libtsan2 amd64 15.2.0-7ubuntu1 [2757 kB] 63s Get:20 http://ftpmaster.internal/ubuntu resolute/main amd64 libubsan1 amd64 15.2.0-7ubuntu1 [1210 kB] 63s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 libhwasan0 amd64 15.2.0-7ubuntu1 [1685 kB] 63s Get:22 http://ftpmaster.internal/ubuntu resolute/main amd64 libquadmath0 amd64 15.2.0-7ubuntu1 [153 kB] 63s Get:23 http://ftpmaster.internal/ubuntu resolute/main amd64 libgcc-15-dev amd64 15.2.0-7ubuntu1 [2864 kB] 63s Get:24 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15-x86-64-linux-gnu amd64 15.2.0-7ubuntu1 [25.4 MB] 64s Get:25 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15 amd64 15.2.0-7ubuntu1 [524 kB] 64s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [1208 B] 64s Get:27 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc amd64 4:15.2.0-4ubuntu1 [5024 B] 64s Get:28 http://ftpmaster.internal/ubuntu resolute/main amd64 libstdc++-15-dev amd64 15.2.0-7ubuntu1 [2573 kB] 64s Get:29 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-15-x86-64-linux-gnu amd64 15.2.0-7ubuntu1 [14.4 MB] 64s Get:30 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-15 amd64 15.2.0-7ubuntu1 [23.7 kB] 64s Get:31 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [966 B] 64s Get:32 http://ftpmaster.internal/ubuntu resolute/main amd64 g++ amd64 4:15.2.0-4ubuntu1 [1100 B] 64s Get:33 http://ftpmaster.internal/ubuntu resolute/main amd64 build-essential amd64 12.12ubuntu1 [5080 B] 64s Get:34 http://ftpmaster.internal/ubuntu resolute/main amd64 libdebhelper-perl all 13.24.2ubuntu1 [95.7 kB] 64s Get:35 http://ftpmaster.internal/ubuntu resolute/main amd64 libtool all 2.5.4-4build1 [169 kB] 64s Get:36 http://ftpmaster.internal/ubuntu resolute/main amd64 dh-autoreconf all 21 [12.5 kB] 64s Get:37 http://ftpmaster.internal/ubuntu resolute/main amd64 libarchive-zip-perl all 1.68-1 [90.2 kB] 64s Get:38 http://ftpmaster.internal/ubuntu resolute/main amd64 libfile-stripnondeterminism-perl all 1.15.0-1 [20.5 kB] 64s Get:39 http://ftpmaster.internal/ubuntu resolute/main amd64 dh-strip-nondeterminism all 1.15.0-1 [5090 B] 64s Get:40 http://ftpmaster.internal/ubuntu resolute/main amd64 debugedit amd64 1:5.2-3 [49.9 kB] 64s Get:41 http://ftpmaster.internal/ubuntu resolute/main amd64 dwz amd64 0.16-2 [115 kB] 64s Get:42 http://ftpmaster.internal/ubuntu resolute/main amd64 gettext amd64 0.23.1-2build2 [1043 kB] 64s Get:43 http://ftpmaster.internal/ubuntu resolute/main amd64 intltool-debian all 0.35.0+20060710.6 [23.2 kB] 64s Get:44 http://ftpmaster.internal/ubuntu resolute/main amd64 po-debconf all 1.0.21+nmu1 [233 kB] 64s Get:45 http://ftpmaster.internal/ubuntu resolute/main amd64 debhelper all 13.24.2ubuntu1 [896 kB] 64s Get:46 http://ftpmaster.internal/ubuntu resolute/main amd64 liberror-perl all 0.17030-1 [23.5 kB] 64s Get:47 http://ftpmaster.internal/ubuntu resolute/main amd64 git-man all 1:2.51.0-1ubuntu1 [1179 kB] 64s Get:48 http://ftpmaster.internal/ubuntu resolute/main amd64 git amd64 1:2.51.0-1ubuntu1 [4414 kB] 64s Get:49 http://ftpmaster.internal/ubuntu resolute/main amd64 javascript-common all 12+nmu1 [4828 B] 64s Get:50 http://ftpmaster.internal/ubuntu resolute/universe amd64 libalgorithm-c3-perl all 0.11-2 [10.2 kB] 64s Get:51 http://ftpmaster.internal/ubuntu resolute/universe amd64 libautovivification-perl amd64 0.18-2build5 [22.6 kB] 64s Get:52 http://ftpmaster.internal/ubuntu resolute/main amd64 libb-hooks-op-check-perl amd64 0.22-3build2 [9624 B] 64s Get:53 http://ftpmaster.internal/ubuntu resolute/main amd64 libdynaloader-functions-perl all 0.004-2 [11.5 kB] 64s Get:54 http://ftpmaster.internal/ubuntu resolute/main amd64 libdevel-callchecker-perl amd64 0.009-2 [14.2 kB] 64s Get:55 http://ftpmaster.internal/ubuntu resolute/main amd64 libparams-classify-perl amd64 0.015-2build6 [20.1 kB] 64s Get:56 http://ftpmaster.internal/ubuntu resolute/main amd64 libmodule-runtime-perl all 0.018-1 [15.2 kB] 64s Get:57 http://ftpmaster.internal/ubuntu resolute/main amd64 libtry-tiny-perl all 0.32-1 [21.2 kB] 64s Get:58 http://ftpmaster.internal/ubuntu resolute/main amd64 libmodule-implementation-perl all 0.09-2 [12.0 kB] 64s Get:59 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-exporter-progressive-perl all 0.001013-3 [6718 B] 64s Get:60 http://ftpmaster.internal/ubuntu resolute/main amd64 libvariable-magic-perl amd64 0.64-1build1 [36.3 kB] 64s Get:61 http://ftpmaster.internal/ubuntu resolute/main amd64 libb-hooks-endofscope-perl all 0.28-2 [15.8 kB] 64s Get:62 http://ftpmaster.internal/ubuntu resolute/main amd64 libpackage-stash-perl all 0.40-1 [19.5 kB] 64s Get:63 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-identify-perl amd64 0.14-3build4 [9904 B] 64s Get:64 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-name-perl amd64 0.28-1 [10.7 kB] 64s Get:65 http://ftpmaster.internal/ubuntu resolute/main amd64 libnamespace-clean-perl all 0.27-2 [14.0 kB] 64s Get:66 http://ftpmaster.internal/ubuntu resolute/universe amd64 libbuiltin-compat-perl all 0.003003-2 [6956 B] 64s Get:67 http://ftpmaster.internal/ubuntu resolute/universe amd64 libclass-c3-perl all 0.35-2 [18.4 kB] 64s Get:68 http://ftpmaster.internal/ubuntu resolute/main amd64 libclass-data-inheritable-perl all 0.10-1 [8038 B] 64s Get:69 http://ftpmaster.internal/ubuntu resolute/main amd64 libclass-inspector-perl all 1.36-3 [15.4 kB] 64s Get:70 http://ftpmaster.internal/ubuntu resolute/main amd64 libclass-method-modifiers-perl all 2.15-1 [16.1 kB] 64s Get:71 http://ftpmaster.internal/ubuntu resolute/universe amd64 libclass-singleton-perl all 1.6-2 [11.5 kB] 64s Get:72 http://ftpmaster.internal/ubuntu resolute/universe amd64 libclass-tiny-perl all 1.008-2 [16.4 kB] 64s Get:73 http://ftpmaster.internal/ubuntu resolute/main amd64 libclass-xsaccessor-perl amd64 1.19-4build6 [33.8 kB] 64s Get:74 http://ftpmaster.internal/ubuntu resolute/main amd64 libclone-perl amd64 0.47-1 [10.7 kB] 64s Get:75 http://ftpmaster.internal/ubuntu resolute/universe amd64 libclone-pp-perl all 1.08-2 [8534 B] 64s Get:76 http://ftpmaster.internal/ubuntu resolute/universe amd64 libcpan-meta-check-perl all 0.018-1 [6090 B] 64s Get:77 http://ftpmaster.internal/ubuntu resolute/universe amd64 libextutils-config-perl all 0.010-1 [7806 B] 64s Get:78 http://ftpmaster.internal/ubuntu resolute/universe amd64 libextutils-hascompiler-perl all 0.025-1 [7738 B] 64s Get:79 http://ftpmaster.internal/ubuntu resolute/universe amd64 libcpan-requirements-dynamic-perl all 0.002-1 [7582 B] 64s Get:80 http://ftpmaster.internal/ubuntu resolute/main amd64 libcpanel-json-xs-perl amd64 4.39-2 [116 kB] 64s Get:81 http://ftpmaster.internal/ubuntu resolute/main amd64 libparams-util-perl amd64 1.102-3build1 [21.4 kB] 64s Get:82 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-install-perl all 0.929-1 [9764 B] 64s Get:83 http://ftpmaster.internal/ubuntu resolute/main amd64 libdata-optlist-perl all 0.114-1 [9708 B] 64s Get:84 http://ftpmaster.internal/ubuntu resolute/main amd64 libnet-domain-tld-perl all 1.75-4 [29.0 kB] 64s Get:85 http://ftpmaster.internal/ubuntu resolute/main amd64 libdata-validate-domain-perl all 0.15-1 [10.4 kB] 64s Get:86 http://ftpmaster.internal/ubuntu resolute/main amd64 libfile-sharedir-perl all 1.118-3 [14.0 kB] 64s Get:87 http://ftpmaster.internal/ubuntu resolute/universe amd64 libnamespace-autoclean-perl all 0.31-1 [11.9 kB] 64s Get:88 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-exporter-perl all 0.990-1 [49.0 kB] 64s Get:89 http://ftpmaster.internal/ubuntu resolute/universe amd64 libeval-closure-perl all 0.14-3 [10.1 kB] 64s Get:90 http://ftpmaster.internal/ubuntu resolute/main amd64 libdevel-stacktrace-perl all 2.0500-1 [22.1 kB] 64s Get:91 http://ftpmaster.internal/ubuntu resolute/main amd64 libexception-class-perl all 1.45-1 [28.6 kB] 64s Get:92 http://ftpmaster.internal/ubuntu resolute/universe amd64 libparams-validationcompiler-perl all 0.31-1 [28.3 kB] 64s Get:93 http://ftpmaster.internal/ubuntu resolute/universe amd64 libmro-compat-perl all 0.15-2 [10.1 kB] 64s Get:94 http://ftpmaster.internal/ubuntu resolute/main amd64 librole-tiny-perl all 2.002004-1 [16.3 kB] 64s Get:95 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-quote-perl all 2.006008-1ubuntu1 [20.7 kB] 64s Get:96 http://ftpmaster.internal/ubuntu resolute/universe amd64 libxstring-perl amd64 0.005-2build4 [7940 B] 64s Get:97 http://ftpmaster.internal/ubuntu resolute/universe amd64 libspecio-perl all 0.53-1 [129 kB] 64s Get:98 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdatetime-locale-perl all 1:1.41-1 [3193 kB] 64s Get:99 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdatetime-timezone-perl all 1:2.65-1+2025b [260 kB] 64s Get:100 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdatetime-perl amd64 2:1.65-1build3 [95.8 kB] 64s Get:101 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdatetime-format-rfc3339-perl all 1.10.0-1 [8154 B] 64s Get:102 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdevel-cycle-perl all 1.12-2 [10.1 kB] 64s Get:103 http://ftpmaster.internal/ubuntu resolute/main amd64 libemail-address-xs-perl amd64 1.05-1build5 [29.5 kB] 64s Get:104 http://ftpmaster.internal/ubuntu resolute/main amd64 libexporter-tiny-perl all 1.006002-1 [36.8 kB] 64s Get:105 http://ftpmaster.internal/ubuntu resolute/universe amd64 libextutils-helpers-perl all 0.028-1 [10.8 kB] 64s Get:106 http://ftpmaster.internal/ubuntu resolute/universe amd64 libextutils-installpaths-perl all 0.015-1 [13.2 kB] 64s Get:107 http://ftpmaster.internal/ubuntu resolute/main amd64 libxs-parse-keyword-perl amd64 0.49-1 [62.4 kB] 64s Get:108 http://ftpmaster.internal/ubuntu resolute/main amd64 libsyntax-keyword-try-perl amd64 0.30-1 [24.4 kB] 64s Get:109 http://ftpmaster.internal/ubuntu resolute/universe amd64 libfeature-compat-try-perl all 0.05-1 [9998 B] 64s Get:110 http://ftpmaster.internal/ubuntu resolute/universe amd64 libfile-chdir-perl all 0.1011-1 [10.8 kB] 64s Get:111 http://ftpmaster.internal/ubuntu resolute/universe amd64 libfile-copy-recursive-perl all 0.45-4 [16.5 kB] 64s Get:112 http://ftpmaster.internal/ubuntu resolute/main amd64 libio-stringy-perl all 2.113-2 [45.3 kB] 64s Get:113 http://ftpmaster.internal/ubuntu resolute/universe amd64 libparams-validate-perl amd64 1.31-2build4 [53.7 kB] 64s Get:114 http://ftpmaster.internal/ubuntu resolute/universe amd64 libgetopt-long-descriptive-perl all 0.116-2 [25.0 kB] 64s Get:115 http://ftpmaster.internal/ubuntu resolute/main amd64 libsort-versions-perl all 1.62-3 [7378 B] 64s Get:116 http://ftpmaster.internal/ubuntu resolute/universe amd64 libgit-wrapper-perl all 0.048-2 [29.5 kB] 64s Get:117 http://ftpmaster.internal/ubuntu resolute/main amd64 libimport-into-perl all 1.002005-2 [10.7 kB] 64s Get:118 http://ftpmaster.internal/ubuntu resolute/universe amd64 node-popper2 all 2.11.2-9 [106 kB] 64s Get:119 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-bootstrap5 all 5.3.8+dfsg-1 [480 kB] 64s Get:120 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-highlight.js all 9.18.5+dfsg1-2 [385 kB] 64s Get:121 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-popper.js all 1.16.1+ds-6 [54.1 kB] 64s Get:122 http://ftpmaster.internal/ubuntu resolute/main amd64 libjson-perl all 4.10000-1 [81.9 kB] 64s Get:123 http://ftpmaster.internal/ubuntu resolute/universe amd64 libmojolicious-perl all 9.39+dfsg-1 [761 kB] 64s Get:124 http://ftpmaster.internal/ubuntu resolute/main amd64 libmoo-perl all 2.005005-1 [47.4 kB] 64s Get:125 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtype-tiny-perl all 2.004000-2 [340 kB] 64s Get:126 http://ftpmaster.internal/ubuntu resolute/universe amd64 libmoox-typetiny-perl all 0.002003-4 [5930 B] 64s Get:127 http://ftpmaster.internal/ubuntu resolute/main amd64 libpath-tiny-perl all 0.148-1 [47.9 kB] 64s Get:128 http://ftpmaster.internal/ubuntu resolute/universe amd64 libref-util-perl all 0.204-2 [15.1 kB] 64s Get:129 http://ftpmaster.internal/ubuntu resolute/universe amd64 libsafe-isa-perl all 1.000010-1 [7684 B] 64s Get:130 http://ftpmaster.internal/ubuntu resolute/main amd64 libstrictures-perl all 2.000006-1 [16.3 kB] 64s Get:131 http://ftpmaster.internal/ubuntu resolute/universe amd64 libyaml-pp-perl all 0.39.0-1 [107 kB] 65s Get:132 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjson-schema-modern-perl all 0.620-1 [110 kB] 65s Get:133 http://ftpmaster.internal/ubuntu resolute/universe amd64 libmodule-build-tiny-perl all 0.052-1 [9926 B] 65s Get:134 http://ftpmaster.internal/ubuntu resolute/universe amd64 libnet-idn-encode-perl amd64 2.500-5build1 [84.0 kB] 65s Get:135 http://ftpmaster.internal/ubuntu resolute/universe amd64 libpadwalker-perl amd64 2.5-1build7 [15.6 kB] 65s Get:136 http://ftpmaster.internal/ubuntu resolute/universe amd64 libref-util-xs-perl amd64 0.117-2build5 [12.8 kB] 65s Get:137 http://ftpmaster.internal/ubuntu resolute/universe amd64 libscope-guard-perl all 0.21-2 [7730 B] 65s Get:138 http://ftpmaster.internal/ubuntu resolute/main amd64 libsereal-decoder-perl amd64 5.004+ds-1build5 [101 kB] 65s Get:139 http://ftpmaster.internal/ubuntu resolute/main amd64 libsereal-encoder-perl amd64 5.004+ds-1build4 [105 kB] 65s Get:140 http://ftpmaster.internal/ubuntu resolute/universe amd64 libsereal-perl all 5.004-1 [8770 B] 65s Get:141 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-deep-perl all 1.205-1 [46.7 kB] 65s Get:142 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-deep-unorderedpairs-perl all 0.006-3 [9052 B] 65s Get:143 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-fatal-perl all 0.017-2 [12.1 kB] 65s Get:144 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-file-sharedir-perl all 1.001002-2 [26.3 kB] 65s Get:145 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest2-suite-perl all 0.000163-1 [377 kB] 65s Get:146 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-json-schema-acceptance-perl all 1.029-1 [89.9 kB] 65s Get:147 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-memory-cycle-perl all 1.06-2 [11.0 kB] 65s Get:148 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-needs-perl all 0.002010-1 [8530 B] 65s Get:149 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-warnings-perl all 0.038-1 [21.0 kB] 65s Get:150 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtest-without-module-perl all 0.23-1 [9732 B] 65s Get:151 http://ftpmaster.internal/ubuntu resolute/main amd64 libtime-moment-perl amd64 0.44-2build5 [71.6 kB] 65s Get:152 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtype-tiny-xs-perl amd64 0.025-2build1 [25.0 kB] 65s Get:153 http://ftpmaster.internal/ubuntu resolute/universe amd64 pkg-perl-autopkgtest all 0.82 [18.8 kB] 65s Fetched 88.9 MB in 2s (42.6 MB/s) 65s Selecting previously unselected package m4. 65s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 78534 files and directories currently installed.) 65s Preparing to unpack .../000-m4_1.4.20-2_amd64.deb ... 65s Unpacking m4 (1.4.20-2) ... 65s Selecting previously unselected package autoconf. 65s Preparing to unpack .../001-autoconf_2.72-3.1ubuntu1_all.deb ... 65s Unpacking autoconf (2.72-3.1ubuntu1) ... 65s Selecting previously unselected package dctrl-tools. 65s Preparing to unpack .../002-dctrl-tools_2.24-3build3_amd64.deb ... 65s Unpacking dctrl-tools (2.24-3build3) ... 65s Selecting previously unselected package autodep8. 65s Preparing to unpack .../003-autodep8_0.30_all.deb ... 65s Unpacking autodep8 (0.30) ... 65s Selecting previously unselected package autotools-dev. 65s Preparing to unpack .../004-autotools-dev_20240727.1_all.deb ... 65s Unpacking autotools-dev (20240727.1) ... 65s Selecting previously unselected package automake. 65s Preparing to unpack .../005-automake_1%3a1.18.1-2_all.deb ... 65s Unpacking automake (1:1.18.1-2) ... 65s Selecting previously unselected package autopoint. 65s Preparing to unpack .../006-autopoint_0.23.1-2build2_all.deb ... 65s Unpacking autopoint (0.23.1-2build2) ... 65s Selecting previously unselected package libisl23:amd64. 65s Preparing to unpack .../007-libisl23_0.27-1_amd64.deb ... 65s Unpacking libisl23:amd64 (0.27-1) ... 65s Selecting previously unselected package libmpc3:amd64. 65s Preparing to unpack .../008-libmpc3_1.3.1-1build3_amd64.deb ... 65s Unpacking libmpc3:amd64 (1.3.1-1build3) ... 65s Selecting previously unselected package cpp-15-x86-64-linux-gnu. 65s Preparing to unpack .../009-cpp-15-x86-64-linux-gnu_15.2.0-7ubuntu1_amd64.deb ... 65s Unpacking cpp-15-x86-64-linux-gnu (15.2.0-7ubuntu1) ... 65s Selecting previously unselected package cpp-15. 65s Preparing to unpack .../010-cpp-15_15.2.0-7ubuntu1_amd64.deb ... 65s Unpacking cpp-15 (15.2.0-7ubuntu1) ... 65s Selecting previously unselected package cpp-x86-64-linux-gnu. 65s Preparing to unpack .../011-cpp-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 65s Unpacking cpp-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 65s Selecting previously unselected package cpp. 65s Preparing to unpack .../012-cpp_4%3a15.2.0-4ubuntu1_amd64.deb ... 65s Unpacking cpp (4:15.2.0-4ubuntu1) ... 65s Selecting previously unselected package libcc1-0:amd64. 65s Preparing to unpack .../013-libcc1-0_15.2.0-7ubuntu1_amd64.deb ... 65s Unpacking libcc1-0:amd64 (15.2.0-7ubuntu1) ... 65s Selecting previously unselected package libgomp1:amd64. 65s Preparing to unpack .../014-libgomp1_15.2.0-7ubuntu1_amd64.deb ... 65s Unpacking libgomp1:amd64 (15.2.0-7ubuntu1) ... 65s Selecting previously unselected package libitm1:amd64. 65s Preparing to unpack .../015-libitm1_15.2.0-7ubuntu1_amd64.deb ... 65s Unpacking libitm1:amd64 (15.2.0-7ubuntu1) ... 65s Selecting previously unselected package libasan8:amd64. 65s Preparing to unpack .../016-libasan8_15.2.0-7ubuntu1_amd64.deb ... 65s Unpacking libasan8:amd64 (15.2.0-7ubuntu1) ... 65s Selecting previously unselected package liblsan0:amd64. 65s Preparing to unpack .../017-liblsan0_15.2.0-7ubuntu1_amd64.deb ... 65s Unpacking liblsan0:amd64 (15.2.0-7ubuntu1) ... 65s Selecting previously unselected package libtsan2:amd64. 65s Preparing to unpack .../018-libtsan2_15.2.0-7ubuntu1_amd64.deb ... 65s Unpacking libtsan2:amd64 (15.2.0-7ubuntu1) ... 65s Selecting previously unselected package libubsan1:amd64. 65s Preparing to unpack .../019-libubsan1_15.2.0-7ubuntu1_amd64.deb ... 65s Unpacking libubsan1:amd64 (15.2.0-7ubuntu1) ... 65s Selecting previously unselected package libhwasan0:amd64. 65s Preparing to unpack .../020-libhwasan0_15.2.0-7ubuntu1_amd64.deb ... 65s Unpacking libhwasan0:amd64 (15.2.0-7ubuntu1) ... 65s Selecting previously unselected package libquadmath0:amd64. 65s Preparing to unpack .../021-libquadmath0_15.2.0-7ubuntu1_amd64.deb ... 65s Unpacking libquadmath0:amd64 (15.2.0-7ubuntu1) ... 65s Selecting previously unselected package libgcc-15-dev:amd64. 65s Preparing to unpack .../022-libgcc-15-dev_15.2.0-7ubuntu1_amd64.deb ... 65s Unpacking libgcc-15-dev:amd64 (15.2.0-7ubuntu1) ... 65s Selecting previously unselected package gcc-15-x86-64-linux-gnu. 65s Preparing to unpack .../023-gcc-15-x86-64-linux-gnu_15.2.0-7ubuntu1_amd64.deb ... 65s Unpacking gcc-15-x86-64-linux-gnu (15.2.0-7ubuntu1) ... 66s Selecting previously unselected package gcc-15. 66s Preparing to unpack .../024-gcc-15_15.2.0-7ubuntu1_amd64.deb ... 66s Unpacking gcc-15 (15.2.0-7ubuntu1) ... 66s Selecting previously unselected package gcc-x86-64-linux-gnu. 66s Preparing to unpack .../025-gcc-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 66s Unpacking gcc-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 66s Selecting previously unselected package gcc. 66s Preparing to unpack .../026-gcc_4%3a15.2.0-4ubuntu1_amd64.deb ... 66s Unpacking gcc (4:15.2.0-4ubuntu1) ... 66s Selecting previously unselected package libstdc++-15-dev:amd64. 66s Preparing to unpack .../027-libstdc++-15-dev_15.2.0-7ubuntu1_amd64.deb ... 66s Unpacking libstdc++-15-dev:amd64 (15.2.0-7ubuntu1) ... 66s Selecting previously unselected package g++-15-x86-64-linux-gnu. 66s Preparing to unpack .../028-g++-15-x86-64-linux-gnu_15.2.0-7ubuntu1_amd64.deb ... 66s Unpacking g++-15-x86-64-linux-gnu (15.2.0-7ubuntu1) ... 66s Selecting previously unselected package g++-15. 66s Preparing to unpack .../029-g++-15_15.2.0-7ubuntu1_amd64.deb ... 66s Unpacking g++-15 (15.2.0-7ubuntu1) ... 66s Selecting previously unselected package g++-x86-64-linux-gnu. 66s Preparing to unpack .../030-g++-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 66s Unpacking g++-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 66s Selecting previously unselected package g++. 66s Preparing to unpack .../031-g++_4%3a15.2.0-4ubuntu1_amd64.deb ... 66s Unpacking g++ (4:15.2.0-4ubuntu1) ... 66s Selecting previously unselected package build-essential. 66s Preparing to unpack .../032-build-essential_12.12ubuntu1_amd64.deb ... 66s Unpacking build-essential (12.12ubuntu1) ... 66s Selecting previously unselected package libdebhelper-perl. 66s Preparing to unpack .../033-libdebhelper-perl_13.24.2ubuntu1_all.deb ... 66s Unpacking libdebhelper-perl (13.24.2ubuntu1) ... 66s Selecting previously unselected package libtool. 66s Preparing to unpack .../034-libtool_2.5.4-4build1_all.deb ... 66s Unpacking libtool (2.5.4-4build1) ... 66s Selecting previously unselected package dh-autoreconf. 66s Preparing to unpack .../035-dh-autoreconf_21_all.deb ... 66s Unpacking dh-autoreconf (21) ... 66s Selecting previously unselected package libarchive-zip-perl. 66s Preparing to unpack .../036-libarchive-zip-perl_1.68-1_all.deb ... 66s Unpacking libarchive-zip-perl (1.68-1) ... 66s Selecting previously unselected package libfile-stripnondeterminism-perl. 66s Preparing to unpack .../037-libfile-stripnondeterminism-perl_1.15.0-1_all.deb ... 66s Unpacking libfile-stripnondeterminism-perl (1.15.0-1) ... 66s Selecting previously unselected package dh-strip-nondeterminism. 66s Preparing to unpack .../038-dh-strip-nondeterminism_1.15.0-1_all.deb ... 66s Unpacking dh-strip-nondeterminism (1.15.0-1) ... 66s Selecting previously unselected package debugedit. 66s Preparing to unpack .../039-debugedit_1%3a5.2-3_amd64.deb ... 66s Unpacking debugedit (1:5.2-3) ... 66s Selecting previously unselected package dwz. 66s Preparing to unpack .../040-dwz_0.16-2_amd64.deb ... 66s Unpacking dwz (0.16-2) ... 66s Selecting previously unselected package gettext. 66s Preparing to unpack .../041-gettext_0.23.1-2build2_amd64.deb ... 66s Unpacking gettext (0.23.1-2build2) ... 66s Selecting previously unselected package intltool-debian. 66s Preparing to unpack .../042-intltool-debian_0.35.0+20060710.6_all.deb ... 66s Unpacking intltool-debian (0.35.0+20060710.6) ... 66s Selecting previously unselected package po-debconf. 66s Preparing to unpack .../043-po-debconf_1.0.21+nmu1_all.deb ... 66s Unpacking po-debconf (1.0.21+nmu1) ... 66s Selecting previously unselected package debhelper. 66s Preparing to unpack .../044-debhelper_13.24.2ubuntu1_all.deb ... 66s Unpacking debhelper (13.24.2ubuntu1) ... 66s Selecting previously unselected package liberror-perl. 66s Preparing to unpack .../045-liberror-perl_0.17030-1_all.deb ... 66s Unpacking liberror-perl (0.17030-1) ... 66s Selecting previously unselected package git-man. 66s Preparing to unpack .../046-git-man_1%3a2.51.0-1ubuntu1_all.deb ... 66s Unpacking git-man (1:2.51.0-1ubuntu1) ... 66s Selecting previously unselected package git. 66s Preparing to unpack .../047-git_1%3a2.51.0-1ubuntu1_amd64.deb ... 66s Unpacking git (1:2.51.0-1ubuntu1) ... 66s Selecting previously unselected package javascript-common. 66s Preparing to unpack .../048-javascript-common_12+nmu1_all.deb ... 66s Unpacking javascript-common (12+nmu1) ... 66s Selecting previously unselected package libalgorithm-c3-perl. 66s Preparing to unpack .../049-libalgorithm-c3-perl_0.11-2_all.deb ... 66s Unpacking libalgorithm-c3-perl (0.11-2) ... 66s Selecting previously unselected package libautovivification-perl:amd64. 66s Preparing to unpack .../050-libautovivification-perl_0.18-2build5_amd64.deb ... 66s Unpacking libautovivification-perl:amd64 (0.18-2build5) ... 66s Selecting previously unselected package libb-hooks-op-check-perl:amd64. 66s Preparing to unpack .../051-libb-hooks-op-check-perl_0.22-3build2_amd64.deb ... 66s Unpacking libb-hooks-op-check-perl:amd64 (0.22-3build2) ... 66s Selecting previously unselected package libdynaloader-functions-perl. 66s Preparing to unpack .../052-libdynaloader-functions-perl_0.004-2_all.deb ... 66s Unpacking libdynaloader-functions-perl (0.004-2) ... 66s Selecting previously unselected package libdevel-callchecker-perl:amd64. 66s Preparing to unpack .../053-libdevel-callchecker-perl_0.009-2_amd64.deb ... 66s Unpacking libdevel-callchecker-perl:amd64 (0.009-2) ... 66s Selecting previously unselected package libparams-classify-perl:amd64. 66s Preparing to unpack .../054-libparams-classify-perl_0.015-2build6_amd64.deb ... 66s Unpacking libparams-classify-perl:amd64 (0.015-2build6) ... 66s Selecting previously unselected package libmodule-runtime-perl. 66s Preparing to unpack .../055-libmodule-runtime-perl_0.018-1_all.deb ... 66s Unpacking libmodule-runtime-perl (0.018-1) ... 66s Selecting previously unselected package libtry-tiny-perl. 66s Preparing to unpack .../056-libtry-tiny-perl_0.32-1_all.deb ... 66s Unpacking libtry-tiny-perl (0.32-1) ... 66s Selecting previously unselected package libmodule-implementation-perl. 66s Preparing to unpack .../057-libmodule-implementation-perl_0.09-2_all.deb ... 66s Unpacking libmodule-implementation-perl (0.09-2) ... 66s Selecting previously unselected package libsub-exporter-progressive-perl. 66s Preparing to unpack .../058-libsub-exporter-progressive-perl_0.001013-3_all.deb ... 66s Unpacking libsub-exporter-progressive-perl (0.001013-3) ... 66s Selecting previously unselected package libvariable-magic-perl. 66s Preparing to unpack .../059-libvariable-magic-perl_0.64-1build1_amd64.deb ... 66s Unpacking libvariable-magic-perl (0.64-1build1) ... 66s Selecting previously unselected package libb-hooks-endofscope-perl. 66s Preparing to unpack .../060-libb-hooks-endofscope-perl_0.28-2_all.deb ... 66s Unpacking libb-hooks-endofscope-perl (0.28-2) ... 66s Selecting previously unselected package libpackage-stash-perl. 66s Preparing to unpack .../061-libpackage-stash-perl_0.40-1_all.deb ... 66s Unpacking libpackage-stash-perl (0.40-1) ... 66s Selecting previously unselected package libsub-identify-perl. 66s Preparing to unpack .../062-libsub-identify-perl_0.14-3build4_amd64.deb ... 66s Unpacking libsub-identify-perl (0.14-3build4) ... 66s Selecting previously unselected package libsub-name-perl:amd64. 66s Preparing to unpack .../063-libsub-name-perl_0.28-1_amd64.deb ... 66s Unpacking libsub-name-perl:amd64 (0.28-1) ... 66s Selecting previously unselected package libnamespace-clean-perl. 66s Preparing to unpack .../064-libnamespace-clean-perl_0.27-2_all.deb ... 66s Unpacking libnamespace-clean-perl (0.27-2) ... 66s Selecting previously unselected package libbuiltin-compat-perl. 66s Preparing to unpack .../065-libbuiltin-compat-perl_0.003003-2_all.deb ... 66s Unpacking libbuiltin-compat-perl (0.003003-2) ... 66s Selecting previously unselected package libclass-c3-perl. 66s Preparing to unpack .../066-libclass-c3-perl_0.35-2_all.deb ... 66s Unpacking libclass-c3-perl (0.35-2) ... 66s Selecting previously unselected package libclass-data-inheritable-perl. 66s Preparing to unpack .../067-libclass-data-inheritable-perl_0.10-1_all.deb ... 66s Unpacking libclass-data-inheritable-perl (0.10-1) ... 66s Selecting previously unselected package libclass-inspector-perl. 66s Preparing to unpack .../068-libclass-inspector-perl_1.36-3_all.deb ... 66s Unpacking libclass-inspector-perl (1.36-3) ... 66s Selecting previously unselected package libclass-method-modifiers-perl. 66s Preparing to unpack .../069-libclass-method-modifiers-perl_2.15-1_all.deb ... 66s Unpacking libclass-method-modifiers-perl (2.15-1) ... 66s Selecting previously unselected package libclass-singleton-perl. 66s Preparing to unpack .../070-libclass-singleton-perl_1.6-2_all.deb ... 66s Unpacking libclass-singleton-perl (1.6-2) ... 66s Selecting previously unselected package libclass-tiny-perl. 66s Preparing to unpack .../071-libclass-tiny-perl_1.008-2_all.deb ... 66s Unpacking libclass-tiny-perl (1.008-2) ... 66s Selecting previously unselected package libclass-xsaccessor-perl. 66s Preparing to unpack .../072-libclass-xsaccessor-perl_1.19-4build6_amd64.deb ... 66s Unpacking libclass-xsaccessor-perl (1.19-4build6) ... 66s Selecting previously unselected package libclone-perl:amd64. 66s Preparing to unpack .../073-libclone-perl_0.47-1_amd64.deb ... 66s Unpacking libclone-perl:amd64 (0.47-1) ... 66s Selecting previously unselected package libclone-pp-perl. 66s Preparing to unpack .../074-libclone-pp-perl_1.08-2_all.deb ... 66s Unpacking libclone-pp-perl (1.08-2) ... 66s Selecting previously unselected package libcpan-meta-check-perl. 66s Preparing to unpack .../075-libcpan-meta-check-perl_0.018-1_all.deb ... 66s Unpacking libcpan-meta-check-perl (0.018-1) ... 66s Selecting previously unselected package libextutils-config-perl. 66s Preparing to unpack .../076-libextutils-config-perl_0.010-1_all.deb ... 66s Unpacking libextutils-config-perl (0.010-1) ... 66s Selecting previously unselected package libextutils-hascompiler-perl. 66s Preparing to unpack .../077-libextutils-hascompiler-perl_0.025-1_all.deb ... 66s Unpacking libextutils-hascompiler-perl (0.025-1) ... 66s Selecting previously unselected package libcpan-requirements-dynamic-perl. 66s Preparing to unpack .../078-libcpan-requirements-dynamic-perl_0.002-1_all.deb ... 66s Unpacking libcpan-requirements-dynamic-perl (0.002-1) ... 66s Selecting previously unselected package libcpanel-json-xs-perl:amd64. 66s Preparing to unpack .../079-libcpanel-json-xs-perl_4.39-2_amd64.deb ... 66s Unpacking libcpanel-json-xs-perl:amd64 (4.39-2) ... 66s Selecting previously unselected package libparams-util-perl. 66s Preparing to unpack .../080-libparams-util-perl_1.102-3build1_amd64.deb ... 66s Unpacking libparams-util-perl (1.102-3build1) ... 66s Selecting previously unselected package libsub-install-perl. 66s Preparing to unpack .../081-libsub-install-perl_0.929-1_all.deb ... 66s Unpacking libsub-install-perl (0.929-1) ... 66s Selecting previously unselected package libdata-optlist-perl. 66s Preparing to unpack .../082-libdata-optlist-perl_0.114-1_all.deb ... 66s Unpacking libdata-optlist-perl (0.114-1) ... 66s Selecting previously unselected package libnet-domain-tld-perl. 66s Preparing to unpack .../083-libnet-domain-tld-perl_1.75-4_all.deb ... 66s Unpacking libnet-domain-tld-perl (1.75-4) ... 67s Selecting previously unselected package libdata-validate-domain-perl. 67s Preparing to unpack .../084-libdata-validate-domain-perl_0.15-1_all.deb ... 67s Unpacking libdata-validate-domain-perl (0.15-1) ... 67s Selecting previously unselected package libfile-sharedir-perl. 67s Preparing to unpack .../085-libfile-sharedir-perl_1.118-3_all.deb ... 67s Unpacking libfile-sharedir-perl (1.118-3) ... 67s Selecting previously unselected package libnamespace-autoclean-perl. 67s Preparing to unpack .../086-libnamespace-autoclean-perl_0.31-1_all.deb ... 67s Unpacking libnamespace-autoclean-perl (0.31-1) ... 67s Selecting previously unselected package libsub-exporter-perl. 67s Preparing to unpack .../087-libsub-exporter-perl_0.990-1_all.deb ... 67s Unpacking libsub-exporter-perl (0.990-1) ... 67s Selecting previously unselected package libeval-closure-perl. 67s Preparing to unpack .../088-libeval-closure-perl_0.14-3_all.deb ... 67s Unpacking libeval-closure-perl (0.14-3) ... 67s Selecting previously unselected package libdevel-stacktrace-perl. 67s Preparing to unpack .../089-libdevel-stacktrace-perl_2.0500-1_all.deb ... 67s Unpacking libdevel-stacktrace-perl (2.0500-1) ... 67s Selecting previously unselected package libexception-class-perl. 67s Preparing to unpack .../090-libexception-class-perl_1.45-1_all.deb ... 67s Unpacking libexception-class-perl (1.45-1) ... 67s Selecting previously unselected package libparams-validationcompiler-perl. 67s Preparing to unpack .../091-libparams-validationcompiler-perl_0.31-1_all.deb ... 67s Unpacking libparams-validationcompiler-perl (0.31-1) ... 67s Selecting previously unselected package libmro-compat-perl. 67s Preparing to unpack .../092-libmro-compat-perl_0.15-2_all.deb ... 67s Unpacking libmro-compat-perl (0.15-2) ... 67s Selecting previously unselected package librole-tiny-perl. 67s Preparing to unpack .../093-librole-tiny-perl_2.002004-1_all.deb ... 67s Unpacking librole-tiny-perl (2.002004-1) ... 67s Selecting previously unselected package libsub-quote-perl. 67s Preparing to unpack .../094-libsub-quote-perl_2.006008-1ubuntu1_all.deb ... 67s Unpacking libsub-quote-perl (2.006008-1ubuntu1) ... 67s Selecting previously unselected package libxstring-perl:amd64. 67s Preparing to unpack .../095-libxstring-perl_0.005-2build4_amd64.deb ... 67s Unpacking libxstring-perl:amd64 (0.005-2build4) ... 67s Selecting previously unselected package libspecio-perl. 67s Preparing to unpack .../096-libspecio-perl_0.53-1_all.deb ... 67s Unpacking libspecio-perl (0.53-1) ... 67s Selecting previously unselected package libdatetime-locale-perl. 67s Preparing to unpack .../097-libdatetime-locale-perl_1%3a1.41-1_all.deb ... 67s Unpacking libdatetime-locale-perl (1:1.41-1) ... 67s Selecting previously unselected package libdatetime-timezone-perl. 67s Preparing to unpack .../098-libdatetime-timezone-perl_1%3a2.65-1+2025b_all.deb ... 67s Unpacking libdatetime-timezone-perl (1:2.65-1+2025b) ... 67s Selecting previously unselected package libdatetime-perl. 67s Preparing to unpack .../099-libdatetime-perl_2%3a1.65-1build3_amd64.deb ... 67s Unpacking libdatetime-perl (2:1.65-1build3) ... 67s Selecting previously unselected package libdatetime-format-rfc3339-perl. 67s Preparing to unpack .../100-libdatetime-format-rfc3339-perl_1.10.0-1_all.deb ... 67s Unpacking libdatetime-format-rfc3339-perl (1.10.0-1) ... 67s Selecting previously unselected package libdevel-cycle-perl. 67s Preparing to unpack .../101-libdevel-cycle-perl_1.12-2_all.deb ... 67s Unpacking libdevel-cycle-perl (1.12-2) ... 67s Selecting previously unselected package libemail-address-xs-perl. 67s Preparing to unpack .../102-libemail-address-xs-perl_1.05-1build5_amd64.deb ... 67s Unpacking libemail-address-xs-perl (1.05-1build5) ... 67s Selecting previously unselected package libexporter-tiny-perl. 67s Preparing to unpack .../103-libexporter-tiny-perl_1.006002-1_all.deb ... 67s Unpacking libexporter-tiny-perl (1.006002-1) ... 67s Selecting previously unselected package libextutils-helpers-perl. 67s Preparing to unpack .../104-libextutils-helpers-perl_0.028-1_all.deb ... 67s Unpacking libextutils-helpers-perl (0.028-1) ... 67s Selecting previously unselected package libextutils-installpaths-perl. 67s Preparing to unpack .../105-libextutils-installpaths-perl_0.015-1_all.deb ... 67s Unpacking libextutils-installpaths-perl (0.015-1) ... 67s Selecting previously unselected package libxs-parse-keyword-perl. 67s Preparing to unpack .../106-libxs-parse-keyword-perl_0.49-1_amd64.deb ... 67s Unpacking libxs-parse-keyword-perl (0.49-1) ... 67s Selecting previously unselected package libsyntax-keyword-try-perl. 67s Preparing to unpack .../107-libsyntax-keyword-try-perl_0.30-1_amd64.deb ... 67s Unpacking libsyntax-keyword-try-perl (0.30-1) ... 67s Selecting previously unselected package libfeature-compat-try-perl. 67s Preparing to unpack .../108-libfeature-compat-try-perl_0.05-1_all.deb ... 67s Unpacking libfeature-compat-try-perl (0.05-1) ... 67s Selecting previously unselected package libfile-chdir-perl. 67s Preparing to unpack .../109-libfile-chdir-perl_0.1011-1_all.deb ... 67s Unpacking libfile-chdir-perl (0.1011-1) ... 67s Selecting previously unselected package libfile-copy-recursive-perl. 67s Preparing to unpack .../110-libfile-copy-recursive-perl_0.45-4_all.deb ... 67s Unpacking libfile-copy-recursive-perl (0.45-4) ... 67s Selecting previously unselected package libio-stringy-perl. 67s Preparing to unpack .../111-libio-stringy-perl_2.113-2_all.deb ... 67s Unpacking libio-stringy-perl (2.113-2) ... 67s Selecting previously unselected package libparams-validate-perl:amd64. 67s Preparing to unpack .../112-libparams-validate-perl_1.31-2build4_amd64.deb ... 67s Unpacking libparams-validate-perl:amd64 (1.31-2build4) ... 67s Selecting previously unselected package libgetopt-long-descriptive-perl. 67s Preparing to unpack .../113-libgetopt-long-descriptive-perl_0.116-2_all.deb ... 67s Unpacking libgetopt-long-descriptive-perl (0.116-2) ... 67s Selecting previously unselected package libsort-versions-perl. 67s Preparing to unpack .../114-libsort-versions-perl_1.62-3_all.deb ... 67s Unpacking libsort-versions-perl (1.62-3) ... 67s Selecting previously unselected package libgit-wrapper-perl. 67s Preparing to unpack .../115-libgit-wrapper-perl_0.048-2_all.deb ... 67s Unpacking libgit-wrapper-perl (0.048-2) ... 67s Selecting previously unselected package libimport-into-perl. 67s Preparing to unpack .../116-libimport-into-perl_1.002005-2_all.deb ... 67s Unpacking libimport-into-perl (1.002005-2) ... 67s Selecting previously unselected package node-popper2. 67s Preparing to unpack .../117-node-popper2_2.11.2-9_all.deb ... 67s Unpacking node-popper2 (2.11.2-9) ... 67s Selecting previously unselected package libjs-bootstrap5. 67s Preparing to unpack .../118-libjs-bootstrap5_5.3.8+dfsg-1_all.deb ... 67s Unpacking libjs-bootstrap5 (5.3.8+dfsg-1) ... 67s Selecting previously unselected package libjs-highlight.js. 67s Preparing to unpack .../119-libjs-highlight.js_9.18.5+dfsg1-2_all.deb ... 67s Unpacking libjs-highlight.js (9.18.5+dfsg1-2) ... 67s Selecting previously unselected package libjs-popper.js. 67s Preparing to unpack .../120-libjs-popper.js_1.16.1+ds-6_all.deb ... 67s Unpacking libjs-popper.js (1.16.1+ds-6) ... 67s Selecting previously unselected package libjson-perl. 67s Preparing to unpack .../121-libjson-perl_4.10000-1_all.deb ... 67s Unpacking libjson-perl (4.10000-1) ... 67s Selecting previously unselected package libmojolicious-perl. 67s Preparing to unpack .../122-libmojolicious-perl_9.39+dfsg-1_all.deb ... 67s Unpacking libmojolicious-perl (9.39+dfsg-1) ... 67s Selecting previously unselected package libmoo-perl. 67s Preparing to unpack .../123-libmoo-perl_2.005005-1_all.deb ... 67s Unpacking libmoo-perl (2.005005-1) ... 67s Selecting previously unselected package libtype-tiny-perl. 67s Preparing to unpack .../124-libtype-tiny-perl_2.004000-2_all.deb ... 67s Unpacking libtype-tiny-perl (2.004000-2) ... 67s Selecting previously unselected package libmoox-typetiny-perl. 67s Preparing to unpack .../125-libmoox-typetiny-perl_0.002003-4_all.deb ... 67s Unpacking libmoox-typetiny-perl (0.002003-4) ... 67s Selecting previously unselected package libpath-tiny-perl. 67s Preparing to unpack .../126-libpath-tiny-perl_0.148-1_all.deb ... 67s Unpacking libpath-tiny-perl (0.148-1) ... 67s Selecting previously unselected package libref-util-perl. 67s Preparing to unpack .../127-libref-util-perl_0.204-2_all.deb ... 67s Unpacking libref-util-perl (0.204-2) ... 67s Selecting previously unselected package libsafe-isa-perl. 67s Preparing to unpack .../128-libsafe-isa-perl_1.000010-1_all.deb ... 67s Unpacking libsafe-isa-perl (1.000010-1) ... 67s Selecting previously unselected package libstrictures-perl. 67s Preparing to unpack .../129-libstrictures-perl_2.000006-1_all.deb ... 67s Unpacking libstrictures-perl (2.000006-1) ... 67s Selecting previously unselected package libyaml-pp-perl. 67s Preparing to unpack .../130-libyaml-pp-perl_0.39.0-1_all.deb ... 67s Unpacking libyaml-pp-perl (0.39.0-1) ... 67s Selecting previously unselected package libjson-schema-modern-perl. 67s Preparing to unpack .../131-libjson-schema-modern-perl_0.620-1_all.deb ... 67s Unpacking libjson-schema-modern-perl (0.620-1) ... 67s Selecting previously unselected package libmodule-build-tiny-perl. 67s Preparing to unpack .../132-libmodule-build-tiny-perl_0.052-1_all.deb ... 67s Unpacking libmodule-build-tiny-perl (0.052-1) ... 67s Selecting previously unselected package libnet-idn-encode-perl. 67s Preparing to unpack .../133-libnet-idn-encode-perl_2.500-5build1_amd64.deb ... 67s Unpacking libnet-idn-encode-perl (2.500-5build1) ... 67s Selecting previously unselected package libpadwalker-perl. 67s Preparing to unpack .../134-libpadwalker-perl_2.5-1build7_amd64.deb ... 67s Unpacking libpadwalker-perl (2.5-1build7) ... 67s Selecting previously unselected package libref-util-xs-perl. 67s Preparing to unpack .../135-libref-util-xs-perl_0.117-2build5_amd64.deb ... 67s Unpacking libref-util-xs-perl (0.117-2build5) ... 67s Selecting previously unselected package libscope-guard-perl. 67s Preparing to unpack .../136-libscope-guard-perl_0.21-2_all.deb ... 67s Unpacking libscope-guard-perl (0.21-2) ... 67s Selecting previously unselected package libsereal-decoder-perl. 67s Preparing to unpack .../137-libsereal-decoder-perl_5.004+ds-1build5_amd64.deb ... 67s Unpacking libsereal-decoder-perl (5.004+ds-1build5) ... 67s Selecting previously unselected package libsereal-encoder-perl. 67s Preparing to unpack .../138-libsereal-encoder-perl_5.004+ds-1build4_amd64.deb ... 67s Unpacking libsereal-encoder-perl (5.004+ds-1build4) ... 67s Selecting previously unselected package libsereal-perl. 67s Preparing to unpack .../139-libsereal-perl_5.004-1_all.deb ... 67s Unpacking libsereal-perl (5.004-1) ... 67s Selecting previously unselected package libtest-deep-perl. 67s Preparing to unpack .../140-libtest-deep-perl_1.205-1_all.deb ... 67s Unpacking libtest-deep-perl (1.205-1) ... 67s Selecting previously unselected package libtest-deep-unorderedpairs-perl. 67s Preparing to unpack .../141-libtest-deep-unorderedpairs-perl_0.006-3_all.deb ... 67s Unpacking libtest-deep-unorderedpairs-perl (0.006-3) ... 67s Selecting previously unselected package libtest-fatal-perl. 67s Preparing to unpack .../142-libtest-fatal-perl_0.017-2_all.deb ... 67s Unpacking libtest-fatal-perl (0.017-2) ... 67s Selecting previously unselected package libtest-file-sharedir-perl. 67s Preparing to unpack .../143-libtest-file-sharedir-perl_1.001002-2_all.deb ... 67s Unpacking libtest-file-sharedir-perl (1.001002-2) ... 67s Selecting previously unselected package libtest2-suite-perl. 67s Preparing to unpack .../144-libtest2-suite-perl_0.000163-1_all.deb ... 67s Unpacking libtest2-suite-perl (0.000163-1) ... 67s Selecting previously unselected package libtest-json-schema-acceptance-perl. 67s Preparing to unpack .../145-libtest-json-schema-acceptance-perl_1.029-1_all.deb ... 67s Unpacking libtest-json-schema-acceptance-perl (1.029-1) ... 67s Selecting previously unselected package libtest-memory-cycle-perl. 67s Preparing to unpack .../146-libtest-memory-cycle-perl_1.06-2_all.deb ... 67s Unpacking libtest-memory-cycle-perl (1.06-2) ... 67s Selecting previously unselected package libtest-needs-perl. 67s Preparing to unpack .../147-libtest-needs-perl_0.002010-1_all.deb ... 67s Unpacking libtest-needs-perl (0.002010-1) ... 67s Selecting previously unselected package libtest-warnings-perl. 67s Preparing to unpack .../148-libtest-warnings-perl_0.038-1_all.deb ... 67s Unpacking libtest-warnings-perl (0.038-1) ... 67s Selecting previously unselected package libtest-without-module-perl. 67s Preparing to unpack .../149-libtest-without-module-perl_0.23-1_all.deb ... 67s Unpacking libtest-without-module-perl (0.23-1) ... 67s Selecting previously unselected package libtime-moment-perl. 67s Preparing to unpack .../150-libtime-moment-perl_0.44-2build5_amd64.deb ... 67s Unpacking libtime-moment-perl (0.44-2build5) ... 67s Selecting previously unselected package libtype-tiny-xs-perl:amd64. 67s Preparing to unpack .../151-libtype-tiny-xs-perl_0.025-2build1_amd64.deb ... 67s Unpacking libtype-tiny-xs-perl:amd64 (0.025-2build1) ... 67s Selecting previously unselected package pkg-perl-autopkgtest. 67s Preparing to unpack .../152-pkg-perl-autopkgtest_0.82_all.deb ... 67s Unpacking pkg-perl-autopkgtest (0.82) ... 67s Setting up javascript-common (12+nmu1) ... 67s Setting up libdevel-cycle-perl (1.12-2) ... 67s Setting up libextutils-config-perl (0.010-1) ... 67s Setting up libsafe-isa-perl (1.000010-1) ... 67s Setting up libextutils-helpers-perl (0.028-1) ... 67s Setting up libclass-inspector-perl (1.36-3) ... 67s Setting up libtest-without-module-perl (0.23-1) ... 67s Setting up libdynaloader-functions-perl (0.004-2) ... 67s Setting up libtest-deep-perl (1.205-1) ... 67s Setting up libclass-method-modifiers-perl (2.15-1) ... 67s Setting up libref-util-xs-perl (0.117-2build5) ... 67s Setting up libjs-popper.js (1.16.1+ds-6) ... 67s Setting up libnet-idn-encode-perl (2.500-5build1) ... 67s Setting up libclone-perl:amd64 (0.47-1) ... 67s Setting up libarchive-zip-perl (1.68-1) ... 67s Setting up libsub-identify-perl (0.14-3build4) ... 67s Setting up libcpanel-json-xs-perl:amd64 (4.39-2) ... 67s Setting up libextutils-installpaths-perl (0.015-1) ... 67s Setting up libio-stringy-perl (2.113-2) ... 67s Setting up libyaml-pp-perl (0.39.0-1) ... 67s Setting up libdebhelper-perl (13.24.2ubuntu1) ... 67s Setting up libtry-tiny-perl (0.32-1) ... 67s Setting up libtest-warnings-perl (0.038-1) ... 67s Setting up libtest-fatal-perl (0.017-2) ... 67s Setting up libextutils-hascompiler-perl (0.025-1) ... 67s Setting up m4 (1.4.20-2) ... 67s Setting up libclass-singleton-perl (1.6-2) ... 67s Setting up libtime-moment-perl (0.44-2build5) ... 67s Setting up libpadwalker-perl (2.5-1build7) ... 67s Setting up libcpan-requirements-dynamic-perl (0.002-1) ... 67s Setting up libxstring-perl:amd64 (0.005-2build4) ... 67s Setting up libgomp1:amd64 (15.2.0-7ubuntu1) ... 67s Setting up libsereal-encoder-perl (5.004+ds-1build4) ... 67s Setting up libsub-install-perl (0.929-1) ... 67s Setting up libtest2-suite-perl (0.000163-1) ... 67s Setting up libtest-needs-perl (0.002010-1) ... 67s Setting up libscope-guard-perl (0.21-2) ... 67s Setting up libfile-copy-recursive-perl (0.45-4) ... 67s Setting up liberror-perl (0.17030-1) ... 67s Setting up libautovivification-perl:amd64 (0.18-2build5) ... 67s Setting up libtest-memory-cycle-perl (1.06-2) ... 67s Setting up autotools-dev (20240727.1) ... 67s Setting up libclass-data-inheritable-perl (0.10-1) ... 67s Setting up libalgorithm-c3-perl (0.11-2) ... 67s Setting up libclass-tiny-perl (1.008-2) ... 67s Setting up libtest-deep-unorderedpairs-perl (0.006-3) ... 67s Setting up libref-util-perl (0.204-2) ... 67s Setting up libnet-domain-tld-perl (1.75-4) ... 67s Setting up libquadmath0:amd64 (15.2.0-7ubuntu1) ... 67s Setting up libmpc3:amd64 (1.3.1-1build3) ... 67s Setting up libvariable-magic-perl (0.64-1build1) ... 67s Setting up autopoint (0.23.1-2build2) ... 67s Setting up libb-hooks-op-check-perl:amd64 (0.22-3build2) ... 67s Setting up libparams-util-perl (1.102-3build1) ... 67s Setting up autoconf (2.72-3.1ubuntu1) ... 68s Setting up libsub-exporter-progressive-perl (0.001013-3) ... 68s Setting up libubsan1:amd64 (15.2.0-7ubuntu1) ... 68s Setting up libsub-name-perl:amd64 (0.28-1) ... 68s Setting up libtype-tiny-xs-perl:amd64 (0.025-2build1) ... 68s Setting up dwz (0.16-2) ... 68s Setting up libdata-validate-domain-perl (0.15-1) ... 68s Setting up libcpan-meta-check-perl (0.018-1) ... 68s Setting up libjs-highlight.js (9.18.5+dfsg1-2) ... 68s Setting up libfile-chdir-perl (0.1011-1) ... 68s Setting up node-popper2 (2.11.2-9) ... 68s Setting up libhwasan0:amd64 (15.2.0-7ubuntu1) ... 68s Setting up libpath-tiny-perl (0.148-1) ... 68s Setting up libasan8:amd64 (15.2.0-7ubuntu1) ... 68s Setting up libjson-perl (4.10000-1) ... 68s Setting up librole-tiny-perl (2.002004-1) ... 68s Setting up debugedit (1:5.2-3) ... 68s Setting up libfile-sharedir-perl (1.118-3) ... 68s Setting up git-man (1:2.51.0-1ubuntu1) ... 68s Setting up libstrictures-perl (2.000006-1) ... 68s Setting up libsub-quote-perl (2.006008-1ubuntu1) ... 68s Setting up libdevel-stacktrace-perl (2.0500-1) ... 68s Setting up libclass-xsaccessor-perl (1.19-4build6) ... 68s Setting up libsort-versions-perl (1.62-3) ... 68s Setting up libtsan2:amd64 (15.2.0-7ubuntu1) ... 68s Setting up libexporter-tiny-perl (1.006002-1) ... 68s Setting up libisl23:amd64 (0.27-1) ... 68s Setting up libjs-bootstrap5 (5.3.8+dfsg-1) ... 68s Setting up libsereal-decoder-perl (5.004+ds-1build5) ... 68s Setting up libcc1-0:amd64 (15.2.0-7ubuntu1) ... 68s Setting up liblsan0:amd64 (15.2.0-7ubuntu1) ... 68s Setting up dctrl-tools (2.24-3build3) ... 68s Setting up libitm1:amd64 (15.2.0-7ubuntu1) ... 68s Setting up autodep8 (0.30) ... 68s Setting up libclone-pp-perl (1.08-2) ... 68s Setting up libemail-address-xs-perl (1.05-1build5) ... 68s Setting up automake (1:1.18.1-2) ... 68s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 68s Setting up libmodule-build-tiny-perl (0.052-1) ... 68s Setting up libfile-stripnondeterminism-perl (1.15.0-1) ... 68s Setting up gettext (0.23.1-2build2) ... 68s Setting up libgcc-15-dev:amd64 (15.2.0-7ubuntu1) ... 68s Setting up libmojolicious-perl (9.39+dfsg-1) ... 68s Setting up libtype-tiny-perl (2.004000-2) ... 68s Setting up libsereal-perl (5.004-1) ... 68s Setting up libexception-class-perl (1.45-1) ... 68s Setting up libclass-c3-perl (0.35-2) ... 68s Setting up cpp-15-x86-64-linux-gnu (15.2.0-7ubuntu1) ... 68s Setting up libdevel-callchecker-perl:amd64 (0.009-2) ... 68s Setting up intltool-debian (0.35.0+20060710.6) ... 68s Setting up gcc-15-x86-64-linux-gnu (15.2.0-7ubuntu1) ... 68s Setting up libxs-parse-keyword-perl (0.49-1) ... 68s Setting up libstdc++-15-dev:amd64 (15.2.0-7ubuntu1) ... 68s Setting up libtest-file-sharedir-perl (1.001002-2) ... 68s Setting up libdata-optlist-perl (0.114-1) ... 68s Setting up git (1:2.51.0-1ubuntu1) ... 68s Setting up pkg-perl-autopkgtest (0.82) ... 68s Setting up dh-strip-nondeterminism (1.15.0-1) ... 68s Setting up libsyntax-keyword-try-perl (0.30-1) ... 68s Setting up cpp-15 (15.2.0-7ubuntu1) ... 68s Setting up libgit-wrapper-perl (0.048-2) ... 68s Setting up libmro-compat-perl (0.15-2) ... 68s Setting up libsub-exporter-perl (0.990-1) ... 68s Setting up libeval-closure-perl (0.14-3) ... 68s Setting up cpp-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 68s Setting up g++-15-x86-64-linux-gnu (15.2.0-7ubuntu1) ... 68s Setting up libparams-validationcompiler-perl (0.31-1) ... 68s Setting up libfeature-compat-try-perl (0.05-1) ... 68s Setting up gcc-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 68s Setting up po-debconf (1.0.21+nmu1) ... 68s Setting up libparams-classify-perl:amd64 (0.015-2build6) ... 68s Setting up gcc-15 (15.2.0-7ubuntu1) ... 68s Setting up libmodule-runtime-perl (0.018-1) ... 68s Setting up cpp (4:15.2.0-4ubuntu1) ... 68s Setting up g++-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 68s Setting up g++-15 (15.2.0-7ubuntu1) ... 68s Setting up libtool (2.5.4-4build1) ... 68s Setting up libmodule-implementation-perl (0.09-2) ... 68s Setting up libpackage-stash-perl (0.40-1) ... 68s Setting up libimport-into-perl (1.002005-2) ... 68s Setting up libmoo-perl (2.005005-1) ... 68s Setting up gcc (4:15.2.0-4ubuntu1) ... 68s Setting up dh-autoreconf (21) ... 68s Setting up libspecio-perl (0.53-1) ... 68s Setting up g++ (4:15.2.0-4ubuntu1) ... 68s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 68s Setting up build-essential (12.12ubuntu1) ... 68s Setting up libmoox-typetiny-perl (0.002003-4) ... 68s Setting up libparams-validate-perl:amd64 (1.31-2build4) ... 68s Setting up libb-hooks-endofscope-perl (0.28-2) ... 68s Setting up debhelper (13.24.2ubuntu1) ... 68s Setting up libnamespace-clean-perl (0.27-2) ... 68s Setting up libbuiltin-compat-perl (0.003003-2) ... 68s Setting up libgetopt-long-descriptive-perl (0.116-2) ... 68s Setting up libtest-json-schema-acceptance-perl (1.029-1) ... 68s Setting up libnamespace-autoclean-perl (0.31-1) ... 68s Setting up libdatetime-locale-perl (1:1.41-1) ... 68s Setting up libdatetime-timezone-perl (1:2.65-1+2025b) ... 68s Setting up libjson-schema-modern-perl (0.620-1) ... 68s Setting up libdatetime-perl (2:1.65-1build3) ... 68s Setting up libdatetime-format-rfc3339-perl (1.10.0-1) ... 68s Processing triggers for install-info (7.1.1-1ubuntu1) ... 68s Processing triggers for libc-bin (2.42-0ubuntu3) ... 68s Processing triggers for man-db (2.13.1-1) ... 70s autopkgtest [09:29:47]: test autodep8-perl-build-deps: /usr/share/pkg-perl-autopkgtest/runner build-deps 70s autopkgtest [09:29:47]: test autodep8-perl-build-deps: [----------------------- 70s t/00-report-prereqs.t ................... 70s 1..1 70s # 70s # Versions for all modules listed in static metadata (including optional ones): 70s # 70s # === Configure Requires === 70s # 70s # Module Want Have 70s # ------------------- ----- -------- 70s # Module::Build::Tiny 0.034 0.052 70s # perl 5.020 5.040001 70s # 70s # === Test Requires === 70s # 70s # Module Want Have 70s # ------------------------------ -------- -------- 70s # CPAN::Meta::Check 0.011 0.018 70s # CPAN::Meta::Requirements any 2.143 70s # Data::Dumper any 2.189 70s # File::Spec any 3.91 70s # Math::BigInt 1.999701 2.003002 70s # Module::Metadata any 1.000038 70s # Term::ANSIColor any 5.01 70s # Test2::API any 1.302199 70s # Test2::V0 any 0.000163 70s # Test::Deep any 1.205 70s # Test::Deep::UnorderedPairs any 0.006 70s # Test::Fatal any 0.017 70s # Test::File::ShareDir any 1.001002 70s # Test::JSON::Schema::Acceptance 1.029 1.029 70s # Test::Memory::Cycle any 1.06 70s # Test::More any 1.302199 70s # Test::Needs any 0.002010 70s # Test::Warnings any 0.038 70s # Test::Without::Module 0.19 0.23 70s # lib any 0.65 70s # perl v5.20.0 5.040001 70s # utf8 any 1.25 70s # 70s # === Test Recommends === 70s # 70s # Module Want Have 70s # ---------- -------- -------- 70s # CPAN::Meta 2.120900 2.150010 70s # 70s # === Runtime Requires === 70s # 70s # Module Want Have 70s # ------------------------- -------- -------- 70s # B any 1.89 70s # Carp any 1.54 70s # Cpanel::JSON::XS 4.38 4.39 70s # Digest::MD5 any 2.58_01 70s # Exporter any 5.78 70s # Feature::Compat::Try any 0.05 70s # File::ShareDir any 1.118 70s # Getopt::Long::Descriptive any 0.116 70s # JSON::PP 4.11 4.16 70s # List::Util 1.55 1.63 70s # MIME::Base64 any 3.16_01 70s # Math::BigFloat any 2.003002 70s # Math::BigInt 1.999701 2.003002 70s # Mojo::JSON any undef 70s # Mojo::JSON::Pointer any undef 70s # Mojo::Message::Response any undef 70s # Mojo::URL any undef 70s # Mojolicious 7.87 9.39 70s # Moo any 2.005005 70s # Moo::Role any 2.005005 70s # MooX::TypeTiny 0.002002 0.002003 70s # Path::Tiny any 0.148 70s # Ref::Util 0.100 0.204 70s # Safe::Isa 1.000008 1.000010 70s # Scalar::Util any 1.63 70s # Storable any 3.32 70s # Sub::Install any 0.929 70s # Types::Common::Numeric any 2.004000 70s # Types::Standard 1.016003 2.004000 70s # YAML::PP any v0.39.0 70s # autovivification any 0.18 70s # builtin::compat 0.003003 0.003003 70s # constant any 1.33 70s # experimental 0.026 0.032 70s # feature any 1.89 70s # if any 0.0610 70s # namespace::clean any 0.27 70s # open any 1.13 70s # overload any 1.37 70s # perl v5.20.0 5.040001 70s # stable 0.031 0.033 70s # strict any 1.13 70s # strictures 2 2.000006 70s # warnings any 1.70 70s # 70s # === Runtime Suggests === 70s # 70s # Module Want Have 70s # ------------------------- ---- ------- 70s # Class::XSAccessor any 1.19 70s # Data::Validate::Domain 0.13 0.15 70s # DateTime::Format::RFC3339 any v1.10.0 70s # Email::Address::XS 1.04 1.05 70s # Net::IDN::Encode any 2.500 70s # Ref::Util::XS any 0.117 70s # Sereal any 5.004 70s # Time::Moment any 0.44 70s # Type::Tiny::XS any 0.025 70s # 70s # === Other Modules === 70s # 70s # Module Have 70s # ----------------- -------- 70s # Cpanel::JSON::XS 4.39 70s # Encode 3.21 70s # File::Temp 0.2311 70s # JSON::PP 4.16 70s # JSON::XS missing 70s # Math::BigFloat 2.003002 70s # Math::BigInt 2.003002 70s # Module::Runtime 0.018 70s # Mojolicious 9.39 70s # Sereal::Decoder 5.004 70s # Sereal::Encoder 5.004 70s # Sub::Name 0.28 70s # YAML::PP v0.39.0 70s # YAML::XS missing 70s # autodie 2.37 70s # builtin 0.014 70s # builtin::Backport missing 70s # 70s ok 1 - Reported prereqs 70s ok 71s t/add-schema.t .......................... 71s # Seeded srand with seed '20251102' from local date. 71s ok 1 - evaluate a document { 71s ok 1 - evaluate a Document object 71s ok 2 - resource index from the document is copied to the main object 71s ok 3 - evaluate a Document object again without error 71s 1..3 71s } 71s ok 2 - evaluate a uri { 71s ok 1 - evaluate with a uri that is not yet loaded 71s ok 2 - the metaschema is now loaded and its resources are indexed 71s ok 3 - evaluate against the metaschema again 71s ok 4 - evaluate against the a subschema of the metaschema 71s ok 5 - evaluate against the a fragment of the metaschema that does not exist 71s ok 6 - evaluate against the a plain-name fragment of the metaschema that does not exist 71s 1..6 71s } 71s ok 3 - add a uri resource { 71s ok 1 - ->get in scalar context on a URI to the head of a document 71s ok 2 - get() did not return a reference to the original data 71s ok 3 - ->get in list context on a URI to the head of a document 71s ok 4 - ->get in scalar context on a URI to inside of a document 71s ok 5 - ->get in list context on a URI to inside of a document 71s 1..5 71s } 71s ok 4 - add a schema associated with a uri { 71s ok 1 - cannot use a uri with a fragment 71s ok 2 - added the schema data with an associated uri; the document does not see the overridden uri 71s ok 3 - can now evaluate using a uri to a subschema of a resource we loaded earlier 71s ok 4 - can also evaluate using a non-canonical uri 71s ok 5 - can add the same document and associate it with another schema 71s ok 6 - can add the same document twice, using deprecated interface 71s ok 7 - warned when using deprecated form of add_schema with URI 71s ok 8 - can add the same document again, using deprecated interface 71s ok 9 - warned when using deprecated form of add_schema without URI 71s ok 10 - can add the same document again with the proper interface 71s ok 11 - now the document is available as all three uris, with the same canonical_uri 71s 1..11 71s } 71s ok 5 - multiple anonymous schemas { 71s ok 1 - evaluate an anonymous schema 71s ok 2 - one resource is indexed 71s ok 3 - evaluate another anonymous schema 71s ok 4 - still only one resource is indexed 71s 1..4 71s } 71s ok 6 - add a document without associating it with a uri { 71s ok 1 - added the document without an associated uri 71s ok 2 - document only added under its canonical uri 71s 1..2 71s } 71s ok 7 - add a schema without a uri { 71s ok 1 - added the schema data without an associated uri 71s ok 2 - document only added under its canonical uri 71s 1..2 71s } 71s ok 8 - $ref to non-canonical uri { 71s ok 1 - errors use the canonical uri, not the uri used to evaluate against 71s ok 2 - non-canonical uri is not used to resolve inner $id keywords 71s ok 3 - the canonical uri is updated when use the canonical uri, not the uri used to evaluate against 71s ok 4 - canonical_uri is not always what was in the $ref, even when no local $id is present 71s ok 5 - canonical_uri fragment also needs to be adjusted 71s ok 6 - canonical_uri starts out containing a fragment and can be appended to during traversal 71s 1..6 71s } 71s ok 9 - register a document against multiple uris, with absolute root uri { 71s ok 1 - identifiers stored for the document 71s ok 2 - resource index from the document is copied to the main object 71s ok 3 - add a secondary uri for the same document 71s ok 4 - secondary uri not also added to the document 71s ok 5 - cannot call add_schema with the same URI as for another schema 71s ok 6 - cannot reuse the same $id in another document 71s ok 7 - resource index remains unchanged after erroneous add_schema calls 71s ok 8 - adding the same schema content again is permitted 71s ok 9 - ->get in scalar context for a nonexistent resource returns undef 71s ok 10 - ->get in list context for a nonexistent resource returns empty list 71s 1..10 71s } 71s ok 10 - register a document against multiple uris, with relative root uri { 71s ok 1 - identifiers stored for the document 71s ok 2 - resource index from the document is copied to the main object 71s ok 3 - add a secondary (absolute) uri for the same document 71s ok 4 - secondary uri not also added to the document 71s ok 5 - cannot call add_schema with the same URI as for another schema 71s ok 6 - cannot reuse the same $id in another document 71s ok 7 - resource index remains unchanged after erroneous add_schema calls 71s ok 8 - adding the same schema content again is permitted 71s 1..8 71s } 71s ok 11 - register a document against multiple uris, with no root uri { 71s ok 1 - identifiers stored for the document 71s ok 2 - resource index from the document is copied to the main object 71s ok 3 - add a secondary (absolute) uri for the same document 71s ok 4 - secondary uri not also added to the document 71s ok 5 - cannot call add_schema with the same URI as for another schema 71s ok 6 - cannot reuse the same $id in another document 71s ok 7 - resource index remains unchanged after erroneous add_schema calls 71s ok 8 - adding the same schema content again is permitted 71s 1..8 71s } 71s ok 12 - external resource with externally-supplied uri; main resource with multiple uris { 71s ok 1 - all uris in result are correct, using secondary uri as the target 71s ok 2 - all uris in result are correct, using main uri as the target 71s 1..2 71s } 71s ok 13 - document with no canonical URI, but assigned a URI through add_schema { 71s ok 1 - evaluate a schema referencing a document given an ad-hoc uri 71s ok 2 - adding a uri to an existing document does not change its canonical uri 71s 1..2 71s } 71s 1..13 71s ok 74s t/additional-tests-draft2019-09.t ....... 74s # Seeded srand with seed '20251102' from local date. 74s # 74s # AUTHOR_TESTING: 74s # AUTOMATED_TESTING: 1 74s # EXTENDED_TESTING: 74s # NO_TODO: 74s # TEST_DIR: 74s # NO_SHORT_CIRCUIT: 74s # 74s # Using JSON decoder: Cpanel::JSON::XS 4.39 74s # 74s # running tests in /tmp/autopkgtest.bokkcv/autopkgtest_tmp/smokeLRh8t9/t/additional-tests-draft2019-09 against draft2019-09... 74s # 74s ok 1 - anchor.json: "non-schema object containing an $anchor property" - "skip traversing definition for a valid result" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 2 - anchor.json: "non-schema object containing an $anchor property" - "const at const_not_anchor does not match" { 74s # result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 74s # "error": "value does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/else/$ref/const" 74s # }, 74s # { 74s # "error": "subschema is not valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/else" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 74s # "error": "value does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/else/$ref/const" 74s # }, 74s # { 74s # "error": "subschema is not valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/else" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 3 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "properties evaluated from allOf" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 4 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "extra property" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/bar", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/bar", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 5 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "properties evaluated from additionalProperties" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 6 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "extra property" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/bar", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/bar", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 7 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "properties evaluated from allOf, but unevaluated is buried" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/foo", 74s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "no subschemas are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/anyOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/foo", 74s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "no subschemas are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/anyOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 8 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "no properties" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 9 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "properties evaluated from additionalProperties, but unevaluated is buried" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/foo", 74s # "keywordLocation": "/allOf/0/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/allOf/0/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "subschema 0 is not valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/allOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/foo", 74s # "keywordLocation": "/allOf/0/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/allOf/0/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "subschema 0 is not valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/allOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 10 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "no properties" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 11 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 12 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/not" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/not" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 13 - badRef.json: "good references in schemas" - "this data is never used" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 14 - badRef.json: "bad $ref in schema: not a valid anchor fragment" - "this data is never used" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "$ref value is not a valid URI-reference", 74s # "instanceLocation": "", 74s # "keywordLocation": "/then/$ref" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "$ref value is not a valid URI-reference", 74s # "instanceLocation": "", 74s # "keywordLocation": "/then/$ref" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 15 - badRef.json: "bad $ref in schema: not a valid json pointer fragment" - "this data is never used" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "$ref value is not a valid URI-reference", 74s # "instanceLocation": "", 74s # "keywordLocation": "/then/$ref" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "$ref value is not a valid URI-reference", 74s # "instanceLocation": "", 74s # "keywordLocation": "/then/$ref" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 16 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match the type checks" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 17 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match none of the options" { 74s # result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 74s # "error": "got string, not integer", 74s # "instanceLocation": "", 74s # "keywordLocation": "/anyOf/0/type" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 74s # "error": "got string, not integer", 74s # "instanceLocation": "", 74s # "keywordLocation": "/anyOf/1/type" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 74s # "error": "value does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/anyOf/2/const" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 74s # "error": "value does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/anyOf/3/enum" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 74s # "error": "no subschemas are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/anyOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 74s # "error": "got string, not integer", 74s # "instanceLocation": "", 74s # "keywordLocation": "/anyOf/0/type" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 74s # "error": "got string, not integer", 74s # "instanceLocation": "", 74s # "keywordLocation": "/anyOf/1/type" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 74s # "error": "value does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/anyOf/2/const" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 74s # "error": "value does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/anyOf/3/enum" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 74s # "error": "no subschemas are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/anyOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 18 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 19 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 20 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid date-time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid date-time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 21 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid date-time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid date-time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 22 - format-date.json: "non-ascii digits should be rejected" - "BENGALI DIGIT TWO is not valid in dates" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid date string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid date string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 23 - format-duration.json: "validation of duration strings" - "years and months can appear without days" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 24 - format-duration.json: "validation of duration strings" - "months and days can appear without years" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 25 - format-duration.json: "validation of duration strings" - "hours and minutes can appear without seconds" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 26 - format-duration.json: "validation of duration strings" - "minutes and seconds can appear without hour" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 27 - format-duration.json: "validation of duration strings" - "elements may be omitted if their value is zero" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 28 - format-duration.json: "validation of duration strings" - "half a year duration, with full stop decimal point" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 29 - format-duration.json: "validation of duration strings" - "half a year duration, with comma decimal point" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 30 - format-duration.json: "validation of duration strings" - "only one unit can have a non-integer quantity" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid duration string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid duration string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 31 - format-duration.json: "validation of duration strings" - "only the smallest unit can have a non-integer quantity" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid duration string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid duration string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 32 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid ipv4 string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid ipv4 string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 33 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid ipv4 string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid ipv4 string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 34 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 35 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid ipv4 string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid ipv4 string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 36 - format-ipv6.json: "validation of ipv6 strings" - "fully expanded with zeroes" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 37 - format-ipv6.json: "validation of ipv6 strings" - "partially collapsed zeroes" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 38 - format-ipv6.json: "validation of ipv6 strings" - "4,2 zeroes" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 39 - format-ipv6.json: "validation of ipv6 strings" - "8 single zeroes, no double colon" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 40 - format-ipv6.json: "validation of ipv6 strings" - "7 single zeroes, leading double colon" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 41 - format-ipv6.json: "validation of ipv6 strings" - "6 single zeroes, leading double colon" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 42 - format-ipv6.json: "validation of ipv6 strings" - "5 single zeroes, leading double colon" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 43 - format-ipv6.json: "validation of ipv6 strings" - "4 single zeroes, leading double colon" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 44 - format-ipv6.json: "validation of ipv6 strings" - "3 single zeroes, leading double colon" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 45 - format-ipv6.json: "validation of ipv6 strings" - "2 single zeroes, leading double colon" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 46 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, leading double colon" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 47 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, trailing double colon" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 48 - format-ipv6.json: "validation of ipv6 strings" - "2 leading colons with 8 zeroes" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid ipv6 string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid ipv6 string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 49 - format-ipv6.json: "validation of ipv6 strings" - "1 leading colon with 8 zeroes" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid ipv6 string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid ipv6 string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 50 - format-ipv6.json: "validation of ipv6 strings" - "colons in the middle with 8 zeroes" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid ipv6 string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid ipv6 string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 51 - format-ipv6.json: "validation of ipv6 strings" - "1 trailing colon with 8 zeroes" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid ipv6 string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid ipv6 string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 52 - format-ipv6.json: "validation of ipv6 strings" - "2 trailing colons with 8 zeroes" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid ipv6 string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid ipv6 string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 53 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with empty json-pointer" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 54 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with one-char json-pointer" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 55 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with longer json-pointer" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 56 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer \#" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 57 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "\#\# is not a valid json-pointer" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid relative-json-pointer string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid relative-json-pointer string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 58 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus json-pointer" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid relative-json-pointer string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid relative-json-pointer string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 59 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus octothorpe" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid relative-json-pointer string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid relative-json-pointer string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 60 - format-time.json: "validation of time strings" - "valid leap second, Zulu" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 61 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 62 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 63 - format-time.json: "validation of time strings" - "valid leap second, positive time-offset" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 64 - format-time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 65 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 66 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 67 - format-time.json: "validation of time strings" - "valid leap second, negative time-offset" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 68 - format-time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 69 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 70 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 71 - format-time.json: "validation of time strings" - "no time offset" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 72 - format-time.json: "validation of time strings" - "non-ascii digits should be rejected" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "not a valid time string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 73 - formats.json: "format validation after a $ref" - "invalid duration" { 74s # result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "#/$defs/my_format/format", 74s # "error": "not a valid duration string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$ref/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "#/$defs/my_format/format", 74s # "error": "not a valid duration string", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$ref/format" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 74 - formats.json: "format validation after a $ref" - "valid duration" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 75 - formats.json: "format validation after an $id" - "invalid duration" { 74s # result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 74s # "error": "not a valid duration string", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/allOf/0/format" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "bloop#/allOf", 74s # "error": "subschema 0 is not valid", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/allOf" 74s # }, 74s # { 74s # "error": "subschema is not valid against all items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 74s # "error": "not a valid duration string", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/allOf/0/format" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "bloop#/allOf", 74s # "error": "subschema 0 is not valid", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/allOf" 74s # }, 74s # { 74s # "error": "subschema is not valid against all items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 76 - formats.json: "format validation after an $id" - "valid duration" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s # 74s ok 77 - id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 78 - id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 74s # result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 74s # "error": "value does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/else/$ref/const" 74s # }, 74s # { 74s # "error": "subschema is not valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/else" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 74s # "error": "value does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/else/$ref/const" 74s # }, 74s # { 74s # "error": "subschema is not valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/else" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 79 - id.json: "'' not permitted as $id" - "schema would pass without $id" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "$id cannot be empty", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$id" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "$id cannot be empty", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$id" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 80 - id.json: "'' not permitted as $id" - "schema would fail even without $id" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "$id cannot be empty", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$id" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "$id cannot be empty", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$id" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 81 - id.json: "'\#' not permitted as $id" - "schema would pass without $id" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "$id cannot be empty", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$id" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "$id cannot be empty", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$id" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 82 - id.json: "'\#' not permitted as $id" - "schema would fail even without $id" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "$id cannot be empty", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$id" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "$id cannot be empty", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$id" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 83 - integers.json: "type checks" - "beyond int64 lower boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 84 - integers.json: "type checks" - "int64 lower boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 85 - integers.json: "type checks" - "beyond int32 lower boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 86 - integers.json: "type checks" - "int32 lower boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 87 - integers.json: "type checks" - "zero" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 88 - integers.json: "type checks" - "int32 upper boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 89 - integers.json: "type checks" - "beyond int32 upper boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 90 - integers.json: "type checks" - "uint32 upper boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 91 - integers.json: "type checks" - "beyond uint32 upper boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 92 - integers.json: "type checks" - "upper int64 boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 93 - integers.json: "type checks" - "beyond int64 upper boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 94 - integers.json: "type checks" - "uint64 upper boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 95 - integers.json: "type checks" - "beyond uint64 upper boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 96 - integers.json: "int32 range checks" - "beyond lower boundary" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than -2147483648", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than -2147483648", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 97 - integers.json: "int32 range checks" - "lower boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 98 - integers.json: "int32 range checks" - "zero" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 99 - integers.json: "int32 range checks" - "upper boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 100 - integers.json: "int32 range checks" - "beyond upper boundary" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2147483647", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2147483647", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 101 - integers.json: "int64 range checks" - "beyond lower boundary" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than -9223372036854775808", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than -9223372036854775808", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 102 - integers.json: "int64 range checks" - "lower boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 103 - integers.json: "int64 range checks" - "zero" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 104 - integers.json: "int64 range checks" - "upper boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 105 - integers.json: "int64 range checks" - "beyond upper boundary" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 9223372036854775807", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 9223372036854775807", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 106 - integers.json: "equality checks" - "beyond int64 lower boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 107 - integers.json: "equality checks" - "int64 lower boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 108 - integers.json: "equality checks" - "beyond int32 lower boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 109 - integers.json: "equality checks" - "int32 lower boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 110 - integers.json: "equality checks" - "zero" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 111 - integers.json: "equality checks" - "one" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/enum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/enum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 112 - integers.json: "equality checks" - "int32 upper boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 113 - integers.json: "equality checks" - "beyond int32 upper boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 114 - integers.json: "equality checks" - "int64 upper boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 115 - integers.json: "equality checks" - "beyond int64 upper boundary" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s # 74s ok 116 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 117 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 118 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 119 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 120 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 121 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 122 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 123 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 124 - keyword-independence.json: "contains + maximum" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 125 - keyword-independence.json: "contains + maximum" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 126 - keyword-independence.json: "contains + maximum" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 127 - keyword-independence.json: "contains + maximum" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 128 - keyword-independence.json: "contains + minimum" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 129 - keyword-independence.json: "contains + minimum" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 130 - keyword-independence.json: "contains + minimum" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 131 - keyword-independence.json: "contains + minimum" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 132 - keyword-independence.json: "contains + multipleOf" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 133 - keyword-independence.json: "contains + multipleOf" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 134 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 135 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 136 - keyword-independence.json: "exclusiveMaximum + items" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 137 - keyword-independence.json: "exclusiveMaximum + items" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 138 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 139 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 140 - keyword-independence.json: "exclusiveMinimum + items" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 141 - keyword-independence.json: "exclusiveMinimum + items" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 142 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 143 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 144 - keyword-independence.json: "items + maximum" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 145 - keyword-independence.json: "items + maximum" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 146 - keyword-independence.json: "items + maximum" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 147 - keyword-independence.json: "items + maximum" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 148 - keyword-independence.json: "items + minimum" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 149 - keyword-independence.json: "items + minimum" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 150 - keyword-independence.json: "items + minimum" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 151 - keyword-independence.json: "items + minimum" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 152 - keyword-independence.json: "items + multipleOf" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 153 - keyword-independence.json: "items + multipleOf" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 154 - keyword-independence.json: "items + multipleOf" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 155 - keyword-independence.json: "items + multipleOf" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 156 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 157 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 158 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 159 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 160 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 161 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 162 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 163 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 164 - keyword-independence.json: "maxItems + maximum" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 165 - keyword-independence.json: "maxItems + maximum" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 166 - keyword-independence.json: "maxItems + maximum" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 167 - keyword-independence.json: "maxItems + maximum" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 168 - keyword-independence.json: "maxItems + minimum" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 169 - keyword-independence.json: "maxItems + minimum" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 170 - keyword-independence.json: "maxItems + minimum" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 171 - keyword-independence.json: "maxItems + minimum" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 172 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 173 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 174 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 175 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 176 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 177 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 178 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 179 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 180 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 181 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 182 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 183 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 184 - keyword-independence.json: "maximum + minItems" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 185 - keyword-independence.json: "maximum + minItems" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 186 - keyword-independence.json: "maximum + minItems" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 187 - keyword-independence.json: "maximum + minItems" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 188 - keyword-independence.json: "minItems + minimum" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 189 - keyword-independence.json: "minItems + minimum" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 190 - keyword-independence.json: "minItems + minimum" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 191 - keyword-independence.json: "minItems + minimum" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 192 - keyword-independence.json: "minItems + multipleOf" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 193 - keyword-independence.json: "minItems + multipleOf" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 194 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 195 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 196 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 197 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 198 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 199 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 200 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 201 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 202 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 203 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 204 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 205 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 206 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 207 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 208 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 209 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 210 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 211 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 212 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 213 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 214 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 215 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 216 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 217 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 218 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 219 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 220 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 221 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 222 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 223 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 224 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 225 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 226 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 227 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 228 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 229 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 230 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 231 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 232 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 233 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 234 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 235 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 236 - keyword-independence.json: "additionalProperties + contains" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 237 - keyword-independence.json: "additionalProperties + contains" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 238 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 239 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 240 - keyword-independence.json: "contains + dependentRequired" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 241 - keyword-independence.json: "contains + dependentRequired" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 242 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 243 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 244 - keyword-independence.json: "contains + dependentSchemas" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 245 - keyword-independence.json: "contains + dependentSchemas" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 246 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 247 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 248 - keyword-independence.json: "contains + maxProperties" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 249 - keyword-independence.json: "contains + maxProperties" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 250 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 251 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 252 - keyword-independence.json: "contains + minProperties" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 253 - keyword-independence.json: "contains + minProperties" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 254 - keyword-independence.json: "contains + minProperties" - "object, minProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 255 - keyword-independence.json: "contains + minProperties" - "object, minProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 256 - keyword-independence.json: "contains + patternProperties" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 257 - keyword-independence.json: "contains + patternProperties" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 258 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 259 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 260 - keyword-independence.json: "contains + properties" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 261 - keyword-independence.json: "contains + properties" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 262 - keyword-independence.json: "contains + properties" - "object, properties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 263 - keyword-independence.json: "contains + properties" - "object, properties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 264 - keyword-independence.json: "contains + propertyNames" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 265 - keyword-independence.json: "contains + propertyNames" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 266 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 267 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 268 - keyword-independence.json: "contains + required" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 269 - keyword-independence.json: "contains + required" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 270 - keyword-independence.json: "contains + required" - "object, required invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 271 - keyword-independence.json: "contains + required" - "object, required valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 272 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 273 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 274 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 275 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 276 - keyword-independence.json: "additionalProperties + items" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 277 - keyword-independence.json: "additionalProperties + items" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 278 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 279 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 280 - keyword-independence.json: "dependentRequired + items" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 281 - keyword-independence.json: "dependentRequired + items" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 282 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 283 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 284 - keyword-independence.json: "dependentSchemas + items" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 285 - keyword-independence.json: "dependentSchemas + items" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 286 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 287 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 288 - keyword-independence.json: "items + maxProperties" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 289 - keyword-independence.json: "items + maxProperties" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 290 - keyword-independence.json: "items + maxProperties" - "object, maxProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 291 - keyword-independence.json: "items + maxProperties" - "object, maxProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 292 - keyword-independence.json: "items + minProperties" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 293 - keyword-independence.json: "items + minProperties" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 294 - keyword-independence.json: "items + minProperties" - "object, minProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 295 - keyword-independence.json: "items + minProperties" - "object, minProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 296 - keyword-independence.json: "items + patternProperties" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 297 - keyword-independence.json: "items + patternProperties" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 298 - keyword-independence.json: "items + patternProperties" - "object, patternProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 299 - keyword-independence.json: "items + patternProperties" - "object, patternProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 300 - keyword-independence.json: "items + properties" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 301 - keyword-independence.json: "items + properties" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 302 - keyword-independence.json: "items + properties" - "object, properties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 303 - keyword-independence.json: "items + properties" - "object, properties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 304 - keyword-independence.json: "items + propertyNames" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 305 - keyword-independence.json: "items + propertyNames" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 306 - keyword-independence.json: "items + propertyNames" - "object, propertyNames invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 307 - keyword-independence.json: "items + propertyNames" - "object, propertyNames valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 308 - keyword-independence.json: "items + required" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 309 - keyword-independence.json: "items + required" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 310 - keyword-independence.json: "items + required" - "object, required invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 311 - keyword-independence.json: "items + required" - "object, required valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 312 - keyword-independence.json: "items + unevaluatedProperties" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 313 - keyword-independence.json: "items + unevaluatedProperties" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 314 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 315 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 316 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 317 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 318 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 319 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 320 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 321 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 322 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 323 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 324 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 325 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 326 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 327 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 328 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 329 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 330 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 331 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 332 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 333 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 334 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 335 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 336 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 337 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 338 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 339 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 340 - keyword-independence.json: "maxItems + properties" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 341 - keyword-independence.json: "maxItems + properties" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 342 - keyword-independence.json: "maxItems + properties" - "object, properties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 343 - keyword-independence.json: "maxItems + properties" - "object, properties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 344 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 345 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 346 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 347 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 348 - keyword-independence.json: "maxItems + required" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 349 - keyword-independence.json: "maxItems + required" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 350 - keyword-independence.json: "maxItems + required" - "object, required invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 351 - keyword-independence.json: "maxItems + required" - "object, required valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 352 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 353 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 354 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 355 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 356 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 357 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 358 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 359 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 360 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 361 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 362 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 363 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 364 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 365 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 366 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 367 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 368 - keyword-independence.json: "maxProperties + minItems" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 369 - keyword-independence.json: "maxProperties + minItems" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 370 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 371 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 372 - keyword-independence.json: "minItems + minProperties" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 373 - keyword-independence.json: "minItems + minProperties" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 374 - keyword-independence.json: "minItems + minProperties" - "object, minProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 375 - keyword-independence.json: "minItems + minProperties" - "object, minProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 376 - keyword-independence.json: "minItems + patternProperties" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 377 - keyword-independence.json: "minItems + patternProperties" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 378 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 379 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 380 - keyword-independence.json: "minItems + properties" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 381 - keyword-independence.json: "minItems + properties" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 382 - keyword-independence.json: "minItems + properties" - "object, properties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 383 - keyword-independence.json: "minItems + properties" - "object, properties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 384 - keyword-independence.json: "minItems + propertyNames" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 385 - keyword-independence.json: "minItems + propertyNames" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 386 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 387 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 388 - keyword-independence.json: "minItems + required" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 389 - keyword-independence.json: "minItems + required" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 390 - keyword-independence.json: "minItems + required" - "object, required invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 391 - keyword-independence.json: "minItems + required" - "object, required valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 392 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 393 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 394 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 395 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 396 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 397 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 398 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 399 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 400 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 401 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 402 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 403 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 404 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 405 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 406 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 407 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 408 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 409 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 410 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 411 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 412 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 413 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 414 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 415 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 416 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 417 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 418 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 419 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 420 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 421 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 422 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 423 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 424 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 425 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 426 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 427 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 428 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 429 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 430 - keyword-independence.json: "required + unevaluatedItems" - "object, required invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 431 - keyword-independence.json: "required + unevaluatedItems" - "object, required valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 432 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 433 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 434 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 435 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 436 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 437 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 438 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 439 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 440 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 441 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 442 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 443 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 444 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 445 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 446 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 447 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 448 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 449 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 450 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 451 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 452 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 453 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 454 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 455 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 456 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 457 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 458 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 459 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 460 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 461 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 462 - keyword-independence.json: "properties + uniqueItems" - "object, properties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 463 - keyword-independence.json: "properties + uniqueItems" - "object, properties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 464 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 465 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 466 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 467 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 468 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 469 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 470 - keyword-independence.json: "required + uniqueItems" - "object, required invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 471 - keyword-independence.json: "required + uniqueItems" - "object, required valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 472 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 473 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 474 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 475 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 476 - keyword-independence.json: "contains + maxLength" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 477 - keyword-independence.json: "contains + maxLength" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 478 - keyword-independence.json: "contains + maxLength" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 479 - keyword-independence.json: "contains + maxLength" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 480 - keyword-independence.json: "contains + minLength" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 481 - keyword-independence.json: "contains + minLength" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 482 - keyword-independence.json: "contains + minLength" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 483 - keyword-independence.json: "contains + minLength" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 484 - keyword-independence.json: "contains + pattern" - "array, contains invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is not valid against any item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/contains" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 485 - keyword-independence.json: "contains + pattern" - "array, contains valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 486 - keyword-independence.json: "contains + pattern" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 487 - keyword-independence.json: "contains + pattern" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 488 - keyword-independence.json: "items + maxLength" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 489 - keyword-independence.json: "items + maxLength" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 490 - keyword-independence.json: "items + maxLength" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 491 - keyword-independence.json: "items + maxLength" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 492 - keyword-independence.json: "items + minLength" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 493 - keyword-independence.json: "items + minLength" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 494 - keyword-independence.json: "items + minLength" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 495 - keyword-independence.json: "items + minLength" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 496 - keyword-independence.json: "items + pattern" - "array, items invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/items/0" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 497 - keyword-independence.json: "items + pattern" - "array, items valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 498 - keyword-independence.json: "items + pattern" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 499 - keyword-independence.json: "items + pattern" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 500 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 501 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 502 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 503 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 504 - keyword-independence.json: "maxItems + minLength" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 505 - keyword-independence.json: "maxItems + minLength" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 506 - keyword-independence.json: "maxItems + minLength" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 507 - keyword-independence.json: "maxItems + minLength" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 508 - keyword-independence.json: "maxItems + pattern" - "array, maxItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has more than 1 item", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 509 - keyword-independence.json: "maxItems + pattern" - "array, maxItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 510 - keyword-independence.json: "maxItems + pattern" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 511 - keyword-independence.json: "maxItems + pattern" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 512 - keyword-independence.json: "maxLength + minItems" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 513 - keyword-independence.json: "maxLength + minItems" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 514 - keyword-independence.json: "maxLength + minItems" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 515 - keyword-independence.json: "maxLength + minItems" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 516 - keyword-independence.json: "minItems + minLength" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 517 - keyword-independence.json: "minItems + minLength" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 518 - keyword-independence.json: "minItems + minLength" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 519 - keyword-independence.json: "minItems + minLength" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 520 - keyword-independence.json: "minItems + pattern" - "array, minItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "array has fewer than 2 items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 521 - keyword-independence.json: "minItems + pattern" - "array, minItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 522 - keyword-independence.json: "minItems + pattern" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 523 - keyword-independence.json: "minItems + pattern" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 524 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 525 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 526 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 527 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 528 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 529 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 530 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 531 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 532 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional item not permitted", 74s # "instanceLocation": "/0", 74s # "keywordLocation": "/unevaluatedItems" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 533 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 534 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 535 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 536 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 537 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 538 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 539 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 540 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 541 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 542 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 543 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 544 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "items at indices 0 and 1 are not unique", 74s # "instanceLocation": "", 74s # "keywordLocation": "/uniqueItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 545 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 546 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 547 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 548 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 549 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 550 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 551 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 552 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 553 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 554 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 555 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 556 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 557 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 558 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 559 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 560 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 561 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 562 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 563 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 564 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 565 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 566 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 567 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 568 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 569 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 570 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 571 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 572 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 573 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 574 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 575 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 576 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 577 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 578 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 579 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 580 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 581 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 582 - keyword-independence.json: "exclusiveMaximum + required" - "object, required invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 583 - keyword-independence.json: "exclusiveMaximum + required" - "object, required valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 584 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 585 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 586 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 587 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 588 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 589 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 590 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 591 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 592 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 593 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 594 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 595 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 596 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 597 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 598 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 599 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 600 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 601 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 602 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 603 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 604 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 605 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 606 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 607 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 608 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 609 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 610 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 611 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 612 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 613 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 614 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 615 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 616 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 617 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 618 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 619 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 620 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 621 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 622 - keyword-independence.json: "exclusiveMinimum + required" - "object, required invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 623 - keyword-independence.json: "exclusiveMinimum + required" - "object, required valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 624 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 625 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 626 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 627 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 628 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 629 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 630 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 631 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 632 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 633 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 634 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 635 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 636 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 637 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 638 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 639 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 640 - keyword-independence.json: "maxProperties + maximum" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 641 - keyword-independence.json: "maxProperties + maximum" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 642 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 643 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 644 - keyword-independence.json: "maximum + minProperties" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 645 - keyword-independence.json: "maximum + minProperties" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 646 - keyword-independence.json: "maximum + minProperties" - "object, minProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 647 - keyword-independence.json: "maximum + minProperties" - "object, minProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 648 - keyword-independence.json: "maximum + patternProperties" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 649 - keyword-independence.json: "maximum + patternProperties" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 650 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 651 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 652 - keyword-independence.json: "maximum + properties" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 653 - keyword-independence.json: "maximum + properties" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 654 - keyword-independence.json: "maximum + properties" - "object, properties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 655 - keyword-independence.json: "maximum + properties" - "object, properties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 656 - keyword-independence.json: "maximum + propertyNames" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 657 - keyword-independence.json: "maximum + propertyNames" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 658 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 659 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 660 - keyword-independence.json: "maximum + required" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 661 - keyword-independence.json: "maximum + required" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 662 - keyword-independence.json: "maximum + required" - "object, required invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 663 - keyword-independence.json: "maximum + required" - "object, required valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 664 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 665 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 666 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 667 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 668 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 669 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 670 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 671 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 672 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 673 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 674 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 675 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 676 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 677 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 678 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 679 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 680 - keyword-independence.json: "maxProperties + minimum" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 681 - keyword-independence.json: "maxProperties + minimum" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 682 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 683 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 684 - keyword-independence.json: "minProperties + minimum" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 685 - keyword-independence.json: "minProperties + minimum" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 686 - keyword-independence.json: "minProperties + minimum" - "object, minProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 687 - keyword-independence.json: "minProperties + minimum" - "object, minProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 688 - keyword-independence.json: "minimum + patternProperties" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 689 - keyword-independence.json: "minimum + patternProperties" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 690 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 691 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 692 - keyword-independence.json: "minimum + properties" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 693 - keyword-independence.json: "minimum + properties" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 694 - keyword-independence.json: "minimum + properties" - "object, properties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 695 - keyword-independence.json: "minimum + properties" - "object, properties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 696 - keyword-independence.json: "minimum + propertyNames" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 697 - keyword-independence.json: "minimum + propertyNames" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 698 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 699 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 700 - keyword-independence.json: "minimum + required" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 701 - keyword-independence.json: "minimum + required" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 702 - keyword-independence.json: "minimum + required" - "object, required invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 703 - keyword-independence.json: "minimum + required" - "object, required valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 704 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 705 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 706 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 707 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 708 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 709 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 710 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 711 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 712 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 713 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 714 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 715 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 716 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 717 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 718 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 719 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 720 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 721 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 722 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 723 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 724 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 725 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 726 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 727 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 728 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 729 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 730 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 731 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 732 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 733 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 734 - keyword-independence.json: "multipleOf + properties" - "object, properties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 735 - keyword-independence.json: "multipleOf + properties" - "object, properties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 736 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 737 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 738 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 739 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 740 - keyword-independence.json: "multipleOf + required" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 741 - keyword-independence.json: "multipleOf + required" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 742 - keyword-independence.json: "multipleOf + required" - "object, required invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 743 - keyword-independence.json: "multipleOf + required" - "object, required valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 744 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 745 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 746 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 747 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 748 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 749 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 750 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 751 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 752 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 753 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 754 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 755 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 756 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMaximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 757 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 758 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 759 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 760 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 761 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 762 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 763 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 764 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 765 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 766 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 767 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 768 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than or equal to 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/exclusiveMinimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 769 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 770 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 771 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 772 - keyword-independence.json: "maxLength + maximum" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 773 - keyword-independence.json: "maxLength + maximum" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 774 - keyword-independence.json: "maxLength + maximum" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 775 - keyword-independence.json: "maxLength + maximum" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 776 - keyword-independence.json: "maximum + minLength" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 777 - keyword-independence.json: "maximum + minLength" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 778 - keyword-independence.json: "maximum + minLength" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 779 - keyword-independence.json: "maximum + minLength" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 780 - keyword-independence.json: "maximum + pattern" - "number, maximum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 781 - keyword-independence.json: "maximum + pattern" - "number, maximum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 782 - keyword-independence.json: "maximum + pattern" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 783 - keyword-independence.json: "maximum + pattern" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 784 - keyword-independence.json: "maxLength + minimum" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 785 - keyword-independence.json: "maxLength + minimum" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 786 - keyword-independence.json: "maxLength + minimum" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 787 - keyword-independence.json: "maxLength + minimum" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 788 - keyword-independence.json: "minLength + minimum" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 789 - keyword-independence.json: "minLength + minimum" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 790 - keyword-independence.json: "minLength + minimum" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 791 - keyword-independence.json: "minLength + minimum" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 792 - keyword-independence.json: "minimum + pattern" - "number, minimum invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minimum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 793 - keyword-independence.json: "minimum + pattern" - "number, minimum valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 794 - keyword-independence.json: "minimum + pattern" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 795 - keyword-independence.json: "minimum + pattern" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 796 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 797 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 798 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 799 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 800 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 801 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 802 - keyword-independence.json: "minLength + multipleOf" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 803 - keyword-independence.json: "minLength + multipleOf" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 804 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/multipleOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 805 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 806 - keyword-independence.json: "multipleOf + pattern" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 807 - keyword-independence.json: "multipleOf + pattern" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 808 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 809 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 810 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 811 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 812 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 813 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 814 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 815 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 816 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/additionalProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 817 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 818 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 819 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 820 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 821 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 822 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 823 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 824 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 825 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 826 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 827 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 828 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: y", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentRequired" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 829 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 830 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 831 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 832 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 833 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 834 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 835 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 836 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 837 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 838 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 839 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 840 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas/x" 74s # }, 74s # { 74s # "error": "not all dependencies are satisfied", 74s # "instanceLocation": "", 74s # "keywordLocation": "/dependentSchemas" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 841 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 842 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 843 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 844 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 845 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 846 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 847 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 848 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 849 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 850 - keyword-independence.json: "maxProperties + minLength" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 851 - keyword-independence.json: "maxProperties + minLength" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 852 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has more than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 853 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 854 - keyword-independence.json: "maxProperties + pattern" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 855 - keyword-independence.json: "maxProperties + pattern" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 856 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 857 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 858 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 859 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 860 - keyword-independence.json: "minLength + minProperties" - "object, minProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 861 - keyword-independence.json: "minLength + minProperties" - "object, minProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 862 - keyword-independence.json: "minLength + minProperties" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 863 - keyword-independence.json: "minLength + minProperties" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 864 - keyword-independence.json: "minProperties + pattern" - "object, minProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object has fewer than 1 property", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 865 - keyword-independence.json: "minProperties + pattern" - "object, minProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 866 - keyword-independence.json: "minProperties + pattern" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 867 - keyword-independence.json: "minProperties + pattern" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 868 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 869 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 870 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 871 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 872 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 873 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 874 - keyword-independence.json: "minLength + patternProperties" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 875 - keyword-independence.json: "minLength + patternProperties" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 876 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/no", 74s # "keywordLocation": "/patternProperties/no" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 877 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 878 - keyword-independence.json: "pattern + patternProperties" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 879 - keyword-independence.json: "pattern + patternProperties" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 880 - keyword-independence.json: "maxLength + properties" - "object, properties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 881 - keyword-independence.json: "maxLength + properties" - "object, properties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 882 - keyword-independence.json: "maxLength + properties" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 883 - keyword-independence.json: "maxLength + properties" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 884 - keyword-independence.json: "minLength + properties" - "object, properties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 885 - keyword-independence.json: "minLength + properties" - "object, properties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 886 - keyword-independence.json: "minLength + properties" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 887 - keyword-independence.json: "minLength + properties" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 888 - keyword-independence.json: "pattern + properties" - "object, properties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/properties/x" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 889 - keyword-independence.json: "pattern + properties" - "object, properties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 890 - keyword-independence.json: "pattern + properties" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 891 - keyword-independence.json: "pattern + properties" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 892 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 893 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 894 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 895 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 896 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 897 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 898 - keyword-independence.json: "minLength + propertyNames" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 899 - keyword-independence.json: "minLength + propertyNames" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 900 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "subschema is false", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/propertyNames" 74s # }, 74s # { 74s # "error": "not all property names are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/propertyNames" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 901 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 902 - keyword-independence.json: "pattern + propertyNames" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 903 - keyword-independence.json: "pattern + propertyNames" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 904 - keyword-independence.json: "maxLength + required" - "object, required invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 905 - keyword-independence.json: "maxLength + required" - "object, required valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 906 - keyword-independence.json: "maxLength + required" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 907 - keyword-independence.json: "maxLength + required" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 908 - keyword-independence.json: "minLength + required" - "object, required invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 909 - keyword-independence.json: "minLength + required" - "object, required valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 910 - keyword-independence.json: "minLength + required" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 911 - keyword-independence.json: "minLength + required" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 912 - keyword-independence.json: "pattern + required" - "object, required invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "object is missing property: x", 74s # "instanceLocation": "", 74s # "keywordLocation": "/required" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 913 - keyword-independence.json: "pattern + required" - "object, required valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 914 - keyword-independence.json: "pattern + required" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 915 - keyword-independence.json: "pattern + required" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 916 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 917 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 918 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is greater than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/maxLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 919 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 920 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 921 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 922 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "length is less than 2", 74s # "instanceLocation": "", 74s # "keywordLocation": "/minLength" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 923 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 924 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "additional property not permitted", 74s # "instanceLocation": "/x", 74s # "keywordLocation": "/unevaluatedProperties" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 925 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 926 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "pattern does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/pattern" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 927 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s # 74s ok 928 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does not match string" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value does not match", 74s # "instanceLocation": "/const_string", 74s # "keywordLocation": "/properties/const_string/const" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value does not match", 74s # "instanceLocation": "/const_string", 74s # "keywordLocation": "/properties/const_string/const" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 929 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does match number" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 930 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value matches string" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 931 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value does not match number" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value does not match", 74s # "instanceLocation": "/const_number", 74s # "keywordLocation": "/properties/const_number/const" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value does not match", 74s # "instanceLocation": "/const_number", 74s # "keywordLocation": "/properties/const_number/const" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 932 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does not match string" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value does not match", 74s # "instanceLocation": "/enum_string", 74s # "keywordLocation": "/properties/enum_string/enum" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value does not match", 74s # "instanceLocation": "/enum_string", 74s # "keywordLocation": "/properties/enum_string/enum" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 933 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does match number" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 934 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value matches string" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 935 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value does not match number" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value does not match", 74s # "instanceLocation": "/enum_number", 74s # "keywordLocation": "/properties/enum_number/enum" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value does not match", 74s # "instanceLocation": "/enum_number", 74s # "keywordLocation": "/properties/enum_number/enum" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 936 - recursive-dynamic.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "numeric node" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 937 - recursive-dynamic.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "integer node" { 74s # result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "integerNode.json#/type", 74s # "error": "got number, not one of object, integer", 74s # "instanceLocation": "/november", 74s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/else/$ref/additionalProperties" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "main.json#/else", 74s # "error": "subschema is not valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/else" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "integerNode.json#/type", 74s # "error": "got number, not one of object, integer", 74s # "instanceLocation": "/november", 74s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/else/$ref/additionalProperties" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "main.json#/else", 74s # "error": "subschema is not valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/else" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 938 - recursive-dynamic.json: "$recursiveRef points to a boolean schema" - "follow $recursiveRef to a true schema" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 939 - recursive-dynamic.json: "$recursiveRef points to a boolean schema" - "follow $recursiveRef to a false schema" { 74s # result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "#/$defs/false", 74s # "error": "subschema is false", 74s # "instanceLocation": "/false", 74s # "keywordLocation": "/properties/false/$recursiveRef" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "#/$defs/false", 74s # "error": "subschema is false", 74s # "instanceLocation": "/false", 74s # "keywordLocation": "/properties/false/$recursiveRef" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 940 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with $anchors)" - "data is valid against first definition" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 941 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with $anchors)" - "data is invalid against first definition" { 74s # result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 74s # "error": "value is greater than 10", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$ref/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 74s # "error": "value is greater than 10", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$ref/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 942 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with uris)" - "data is valid against first definition" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 943 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with uris)" - "data is invalid against first definition" { 74s # result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 74s # "error": "value is greater than 10", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$ref/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 74s # "error": "value is greater than 10", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$ref/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 944 - 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" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 945 - 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" { 74s # result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 74s # "error": "got string, not number", 74s # "instanceLocation": "", 74s # "keywordLocation": "/allOf/0/$ref/type" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 74s # "error": "got string, not number", 74s # "instanceLocation": "", 74s # "keywordLocation": "/allOf/0/oneOf/0/type" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf", 74s # "error": "no subschemas are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/allOf/0/oneOf" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 74s # "error": "subschema 0 is not valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/allOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 74s # "error": "got string, not number", 74s # "instanceLocation": "", 74s # "keywordLocation": "/allOf/0/$ref/type" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 74s # "error": "subschema 0 is not valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/allOf" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 946 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 947 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 74s # result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 74s # "error": "value is greater than 10", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$ref/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 74s # "error": "value is greater than 10", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$ref/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 948 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 949 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 74s # result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 74s # "error": "value is greater than 10", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$ref/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 74s # "error": "value is greater than 10", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$ref/maximum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 950 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/enum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value does not match", 74s # "instanceLocation": "", 74s # "keywordLocation": "/enum" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 951 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 952 - ref.json: "invalid $ref: invalid anchor fragment" - "an invalid anchor fragment" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "$ref value is not a valid URI-reference", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$defs/foo/$ref" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "$ref value is not a valid URI-reference", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$defs/foo/$ref" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 953 - ref.json: "invalid $ref: invalid json-pointer fragment" - "an invalid json-pointer fragment" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "$ref value is not a valid URI-reference", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$defs/foo/$ref" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "$ref value is not a valid URI-reference", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$defs/foo/$ref" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 954 - ref.json: "base URI change - change folder in subschema with path from root" - "number is valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 955 - ref.json: "base URI change - change folder in subschema with path from root" - "string is invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 74s # "error": "got string, not integer", 74s # "instanceLocation": "/list/0", 74s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 74s # "error": "subschema is not valid against all items", 74s # "instanceLocation": "/list", 74s # "keywordLocation": "/properties/list/$ref/items" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 74s # "error": "got string, not integer", 74s # "instanceLocation": "/list/0", 74s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 74s # "error": "subschema is not valid against all items", 74s # "instanceLocation": "/list", 74s # "keywordLocation": "/properties/list/$ref/items" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 956 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "single item is valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 957 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "second item is invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "/1", 74s # "keywordLocation": "/items/multipleOf" 74s # }, 74s # { 74s # "error": "subschema is not valid against all items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "/1", 74s # "keywordLocation": "/items/multipleOf" 74s # }, 74s # { 74s # "error": "subschema is not valid against all items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 958 - short-circuit.json: "items (array form) does not improperly short-circuit" - "single item is valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 959 - short-circuit.json: "items (array form) does not improperly short-circuit" - "second item is invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "/1", 74s # "keywordLocation": "/items/1/multipleOf" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "/1", 74s # "keywordLocation": "/items/1/multipleOf" 74s # }, 74s # { 74s # "error": "not all items are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/items" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 960 - short-circuit.json: "additionalItems does not improperly short-circuit" - "single additional item is valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 961 - short-circuit.json: "additionalItems does not improperly short-circuit" - "second additional item is invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "/2", 74s # "keywordLocation": "/additionalItems/multipleOf" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "/2", 74s # "keywordLocation": "/additionalItems/multipleOf" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 962 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "single item is valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 963 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "second item is invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "/1", 74s # "keywordLocation": "/unevaluatedItems/multipleOf" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "/1", 74s # "keywordLocation": "/unevaluatedItems/multipleOf" 74s # }, 74s # { 74s # "error": "subschema is not valid against all additional items", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedItems" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 964 - short-circuit.json: "properties does not improperly short-circuit" - "single property is valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 965 - short-circuit.json: "properties does not improperly short-circuit" - "second property is invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "/beta", 74s # "keywordLocation": "/properties/beta/multipleOf" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "/beta", 74s # "keywordLocation": "/properties/beta/multipleOf" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 966 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 967 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/beta", 74s # "keywordLocation": "/properties/beta" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/beta", 74s # "keywordLocation": "/properties/beta" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/properties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 968 - short-circuit.json: "patternProperties does not improperly short-circuit" - "single property is valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 969 - short-circuit.json: "patternProperties does not improperly short-circuit" - "second property is invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "/beta", 74s # "keywordLocation": "/patternProperties/^b/multipleOf" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "/beta", 74s # "keywordLocation": "/patternProperties/^b/multipleOf" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 970 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 971 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/beta", 74s # "keywordLocation": "/patternProperties/^b" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "property not permitted", 74s # "instanceLocation": "/beta", 74s # "keywordLocation": "/patternProperties/^b" 74s # }, 74s # { 74s # "error": "not all properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/patternProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 972 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "single property is valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 973 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "second property is invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "/beta", 74s # "keywordLocation": "/additionalProperties/multipleOf" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "/beta", 74s # "keywordLocation": "/additionalProperties/multipleOf" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/additionalProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 974 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "single property is valid" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 975 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "second property is invalid" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "/beta", 74s # "keywordLocation": "/unevaluatedProperties/multipleOf" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "value is not a multiple of 2", 74s # "instanceLocation": "/beta", 74s # "keywordLocation": "/unevaluatedProperties/multipleOf" 74s # }, 74s # { 74s # "error": "not all additional properties are valid", 74s # "instanceLocation": "", 74s # "keywordLocation": "/unevaluatedProperties" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 976 - unknownKeyword.json: "past and future keywords are ignored" - "passing" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 977 - unknownKeyword.json: "past and future keywords are ignored" - "failing (string)" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "got string, not number", 74s # "instanceLocation": "", 74s # "keywordLocation": "/type" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "got string, not number", 74s # "instanceLocation": "", 74s # "keywordLocation": "/type" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 978 - unknownKeyword.json: "past and future keywords are ignored" - "failing (object)" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "got object, not number", 74s # "instanceLocation": "", 74s # "keywordLocation": "/type" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "got object, not number", 74s # "instanceLocation": "", 74s # "keywordLocation": "/type" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 979 - unknownKeyword.json: "past and future keywords are ignored" - "failing (array)" { 74s # result: { 74s # "errors": [ 74s # { 74s # "error": "got array, not number", 74s # "instanceLocation": "", 74s # "keywordLocation": "/type" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "error": "got array, not number", 74s # "instanceLocation": "", 74s # "keywordLocation": "/type" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s ok 980 - vocabulary.json: "valid $vocabulary" - "a valid $vocabulary value" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 981 - vocabulary.json: "invalid $vocabulary (wrong specification version), but not until we evaluate with this metaschema" - "invalid $vocabulary (wrong specification version): register this metaschema" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 982 - vocabulary.json: "use schema (invalid $vocabulary) as a metaschema" - "invalid $vocabulary value: wrong specification version" { 74s # result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core", 74s # "error": "\"https://json-schema.org/draft/2020-12/vocab/core\" uses draft2020-12, but the metaschema itself uses draft2019-09", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 74s # "error": "the first vocabulary (by evaluation_order) must be Core", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$schema/$vocabulary" 74s # }, 74s # { 74s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$schema" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core", 74s # "error": "\"https://json-schema.org/draft/2020-12/vocab/core\" uses draft2020-12, but the metaschema itself uses draft2019-09", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core" 74s # }, 74s # { 74s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 74s # "error": "the first vocabulary (by evaluation_order) must be Core", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$schema/$vocabulary" 74s # }, 74s # { 74s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$schema" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s ok 983 - vocabulary.json: "invalid $vocabulary (unknown URI), but not until we evaluate with this metaschema" - "invalid $vocabulary (unknown URI): register this metaschema" { 74s # result: { 74s # "valid": true 74s # } 74s # short-circuited result: { 74s # "valid": true 74s # } 74s ok 1 - test passes: data is valid: true 74s 1..1 74s } 74s ok 984 - vocabulary.json: "use schema (unknown URI) as a metaschema" - "invalid $vocabulary value: unknown URI" { 74s # result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 74s # "error": "\"https://foo.com\" is not a known vocabulary", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 74s # }, 74s # { 74s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$schema" 74s # } 74s # ], 74s # "valid": false 74s # } 74s # short-circuited result: { 74s # "errors": [ 74s # { 74s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 74s # "error": "\"https://foo.com\" is not a known vocabulary", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 74s # }, 74s # { 74s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 74s # "instanceLocation": "", 74s # "keywordLocation": "/$schema" 74s # } 74s # ], 74s # "valid": false 74s # } 74s ok 1 - test passes: data is valid: false 74s 1..1 74s } 74s # 74s # generated with: Test::JSON::Schema::Acceptance 1.029 74s # specification version: draft2019-09 74s # using custom test directory: t/additional-tests-draft2019-09 74s # optional tests included: yes 74s # 74s # filename pass todo-fail fail 74s # --------------------------------------------------------------- 74s # anchor.json 2 0 0 74s # annotation-collection.json 10 0 0 74s # badRef.json 3 0 0 74s # faux-buggy-schemas.json 2 0 0 74s # format-date-time.json 4 0 0 74s # format-date.json 1 0 0 74s # format-duration.json 9 0 0 74s # format-ipv4.json 4 0 0 74s # format-ipv6.json 17 0 0 74s # format-relative-json-pointer.json 7 0 0 74s # format-time.json 13 0 0 74s # formats.json 4 0 0 74s # id.json 6 0 0 74s # integers.json 33 0 0 74s # keyword-independence.json 812 0 0 74s # loose-types-const-enum.json 8 0 0 74s # recursive-dynamic.json 4 0 0 74s # ref-and-id.json 6 0 0 74s # ref.json 10 0 0 74s # short-circuit.json 20 0 0 74s # unknownKeyword.json 4 0 0 74s # vocabulary.json 5 0 0 74s # --------------------------------------------------------------- 74s # TOTAL 984 0 0 74s # 74s # Congratulations, all non-optional tests are passing! 74s # 74s ok 985 - no leaks in the main evaluator object 74s ok 986 - no leaks in the short-circuiting evaluator object 74s ok 987 - got unsupported keyword warnings 74s 1..987 74s ok 77s t/additional-tests-draft2020-12.t ....... 77s # Seeded srand with seed '20251102' from local date. 77s # 77s # AUTHOR_TESTING: 77s # AUTOMATED_TESTING: 1 77s # EXTENDED_TESTING: 77s # NO_TODO: 77s # TEST_DIR: 77s # NO_SHORT_CIRCUIT: 77s # 77s # Using JSON decoder: Cpanel::JSON::XS 4.39 77s # 77s # running tests in /tmp/autopkgtest.bokkcv/autopkgtest_tmp/smokeLRh8t9/t/additional-tests-draft2020-12 against draft2020-12... 77s # 77s ok 1 - anchor.json: "non-schema object containing an $anchor property" - "skip traversing definition for a valid result" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 2 - anchor.json: "non-schema object containing an $anchor property" - "const at const_not_anchor does not match" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 77s # "error": "value does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/else/$ref/const" 77s # }, 77s # { 77s # "error": "subschema is not valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/else" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 77s # "error": "value does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/else/$ref/const" 77s # }, 77s # { 77s # "error": "subschema is not valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/else" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 3 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "properties evaluated from allOf" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 4 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "extra property" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/bar", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/bar", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 5 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "properties evaluated from additionalProperties" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 6 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "extra property" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/bar", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/bar", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 7 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "properties evaluated from allOf, but unevaluated is buried" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/foo", 77s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "no subschemas are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/foo", 77s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "no subschemas are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 8 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "no properties" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 9 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "properties evaluated from additionalProperties, but unevaluated is buried" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/foo", 77s # "keywordLocation": "/allOf/0/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/allOf/0/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "subschema 0 is not valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/allOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/foo", 77s # "keywordLocation": "/allOf/0/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/allOf/0/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "subschema 0 is not valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/allOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 10 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "no properties" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 11 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 12 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/not" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/not" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 13 - badRef.json: "good references in schemas" - "this data is never used" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 14 - badRef.json: "bad $ref in schema: not a valid anchor fragment" - "this data is never used" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "$ref value is not a valid URI-reference", 77s # "instanceLocation": "", 77s # "keywordLocation": "/then/$ref" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "$ref value is not a valid URI-reference", 77s # "instanceLocation": "", 77s # "keywordLocation": "/then/$ref" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 15 - badRef.json: "bad $ref in schema: not a valid json pointer fragment" - "this data is never used" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "$ref value is not a valid URI-reference", 77s # "instanceLocation": "", 77s # "keywordLocation": "/then/$ref" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "$ref value is not a valid URI-reference", 77s # "instanceLocation": "", 77s # "keywordLocation": "/then/$ref" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s 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" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 77s # "error": "got string, not null", 77s # "instanceLocation": "", 77s # "keywordLocation": "/then/$ref/$dynamicRef/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "main#/then", 77s # "error": "subschema is not valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/then" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 77s # "error": "got string, not null", 77s # "instanceLocation": "", 77s # "keywordLocation": "/then/$ref/$dynamicRef/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "main#/then", 77s # "error": "subschema is not valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/then" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s 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" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 77s # "error": "got integer, not null", 77s # "instanceLocation": "", 77s # "keywordLocation": "/then/$ref/$dynamicRef/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "main#/then", 77s # "error": "subschema is not valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/then" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 77s # "error": "got integer, not null", 77s # "instanceLocation": "", 77s # "keywordLocation": "/then/$ref/$dynamicRef/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "main#/then", 77s # "error": "subschema is not valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/then" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s 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" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 19 - dynamicRef.json: "schema in dynamic scope must have a $dynamicAnchor that matches the fragment" - "value would fail under either subschema" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "orig#/minimum", 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$dynamicRef/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "orig#/minimum", 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$dynamicRef/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s 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" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 21 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a true schema" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 22 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a false schema" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "#/$defs/false", 77s # "error": "subschema is false", 77s # "instanceLocation": "/false", 77s # "keywordLocation": "/properties/false/$dynamicRef" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "#/$defs/false", 77s # "error": "subschema is false", 77s # "instanceLocation": "/false", 77s # "keywordLocation": "/properties/false/$dynamicRef" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 23 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match the type checks" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 24 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match none of the options" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 77s # "error": "got string, not integer", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf/0/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 77s # "error": "got string, not integer", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf/1/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 77s # "error": "value does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf/2/const" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 77s # "error": "value does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf/3/enum" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 77s # "error": "no subschemas are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 77s # "error": "got string, not integer", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf/0/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 77s # "error": "got string, not integer", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf/1/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 77s # "error": "value does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf/2/const" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 77s # "error": "value does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf/3/enum" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 77s # "error": "no subschemas are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 25 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 26 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 27 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid date-time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid date-time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 28 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid date-time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid date-time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 29 - format-date.json: "non-ascii digits should be rejected" - "BENGALI DIGIT TWO is not valid in dates" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid date string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid date string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 30 - format-duration.json: "validation of duration strings" - "years and months can appear without days" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 31 - format-duration.json: "validation of duration strings" - "months and days can appear without years" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 32 - format-duration.json: "validation of duration strings" - "hours and minutes can appear without seconds" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 33 - format-duration.json: "validation of duration strings" - "minutes and seconds can appear without hour" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 34 - format-duration.json: "validation of duration strings" - "elements may be omitted if their value is zero" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 35 - format-duration.json: "validation of duration strings" - "half a year duration, with full stop decimal point" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 36 - format-duration.json: "validation of duration strings" - "half a year duration, with comma decimal point" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 37 - format-duration.json: "validation of duration strings" - "only one unit can have a non-integer quantity" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid duration string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid duration string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 38 - format-duration.json: "validation of duration strings" - "only the smallest unit can have a non-integer quantity" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid duration string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid duration string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 39 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv4 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv4 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 40 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv4 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv4 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 41 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 42 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv4 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv4 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 43 - format-ipv6.json: "validation of ipv6 strings" - "fully expanded with zeroes" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 44 - format-ipv6.json: "validation of ipv6 strings" - "partially collapsed zeroes" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 45 - format-ipv6.json: "validation of ipv6 strings" - "4,2 zeroes" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 46 - format-ipv6.json: "validation of ipv6 strings" - "8 single zeroes, no double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 47 - format-ipv6.json: "validation of ipv6 strings" - "7 single zeroes, leading double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 48 - format-ipv6.json: "validation of ipv6 strings" - "6 single zeroes, leading double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 49 - format-ipv6.json: "validation of ipv6 strings" - "5 single zeroes, leading double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 50 - format-ipv6.json: "validation of ipv6 strings" - "4 single zeroes, leading double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 51 - format-ipv6.json: "validation of ipv6 strings" - "3 single zeroes, leading double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 52 - format-ipv6.json: "validation of ipv6 strings" - "2 single zeroes, leading double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 53 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, leading double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 54 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, trailing double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 55 - format-ipv6.json: "validation of ipv6 strings" - "2 leading colons with 8 zeroes" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 56 - format-ipv6.json: "validation of ipv6 strings" - "1 leading colon with 8 zeroes" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 57 - format-ipv6.json: "validation of ipv6 strings" - "colons in the middle with 8 zeroes" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 58 - format-ipv6.json: "validation of ipv6 strings" - "1 trailing colon with 8 zeroes" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 59 - format-ipv6.json: "validation of ipv6 strings" - "2 trailing colons with 8 zeroes" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 60 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with empty json-pointer" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 61 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with one-char json-pointer" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 62 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with longer json-pointer" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 63 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer \#" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 64 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "\#\# is not a valid json-pointer" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid relative-json-pointer string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid relative-json-pointer string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 65 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus json-pointer" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid relative-json-pointer string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid relative-json-pointer string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 66 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus octothorpe" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid relative-json-pointer string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid relative-json-pointer string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 67 - format-time.json: "validation of time strings" - "valid leap second, Zulu" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 68 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 69 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 70 - format-time.json: "validation of time strings" - "valid leap second, positive time-offset" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 71 - format-time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 72 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 73 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 74 - format-time.json: "validation of time strings" - "valid leap second, negative time-offset" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 75 - format-time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 76 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 77 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 78 - format-time.json: "validation of time strings" - "no time offset" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 79 - format-time.json: "validation of time strings" - "non-ascii digits should be rejected" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 80 - formats.json: "format validation after a $ref" - "invalid duration" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "#/$defs/my_format/format", 77s # "error": "not a valid duration string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$ref/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "#/$defs/my_format/format", 77s # "error": "not a valid duration string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$ref/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 81 - formats.json: "format validation after a $ref" - "valid duration" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 82 - formats.json: "format validation after an $id" - "invalid duration" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 77s # "error": "not a valid duration string", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items/allOf/0/format" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "bloop#/allOf", 77s # "error": "subschema 0 is not valid", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items/allOf" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 77s # "error": "not a valid duration string", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items/allOf/0/format" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "bloop#/allOf", 77s # "error": "subschema 0 is not valid", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items/allOf" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 83 - formats.json: "format validation after an $id" - "valid duration" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s # 77s ok 84 - id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 85 - id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 77s # "error": "value does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/else/$ref/const" 77s # }, 77s # { 77s # "error": "subschema is not valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/else" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 77s # "error": "value does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/else/$ref/const" 77s # }, 77s # { 77s # "error": "subschema is not valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/else" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 86 - id.json: "'' not permitted as $id" - "schema would pass without $id" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "$id cannot be empty", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$id" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "$id cannot be empty", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$id" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 87 - id.json: "'' not permitted as $id" - "schema would fail even without $id" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "$id cannot be empty", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$id" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "$id cannot be empty", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$id" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 88 - id.json: "'\#' not permitted as $id" - "schema would pass without $id" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "$id cannot be empty", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$id" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "$id cannot be empty", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$id" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 89 - id.json: "'\#' not permitted as $id" - "schema would fail even without $id" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "$id cannot be empty", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$id" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "$id cannot be empty", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$id" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 90 - integers.json: "type checks" - "beyond int64 lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 91 - integers.json: "type checks" - "int64 lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 92 - integers.json: "type checks" - "beyond int32 lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 93 - integers.json: "type checks" - "int32 lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 94 - integers.json: "type checks" - "zero" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 95 - integers.json: "type checks" - "int32 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 96 - integers.json: "type checks" - "beyond int32 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 97 - integers.json: "type checks" - "uint32 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 98 - integers.json: "type checks" - "beyond uint32 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 99 - integers.json: "type checks" - "upper int64 boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 100 - integers.json: "type checks" - "beyond int64 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 101 - integers.json: "type checks" - "uint64 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 102 - integers.json: "type checks" - "beyond uint64 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 103 - integers.json: "int32 range checks" - "beyond lower boundary" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than -2147483648", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than -2147483648", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 104 - integers.json: "int32 range checks" - "lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 105 - integers.json: "int32 range checks" - "zero" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 106 - integers.json: "int32 range checks" - "upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 107 - integers.json: "int32 range checks" - "beyond upper boundary" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2147483647", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2147483647", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 108 - integers.json: "int64 range checks" - "beyond lower boundary" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than -9223372036854775808", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than -9223372036854775808", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 109 - integers.json: "int64 range checks" - "lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 110 - integers.json: "int64 range checks" - "zero" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 111 - integers.json: "int64 range checks" - "upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 112 - integers.json: "int64 range checks" - "beyond upper boundary" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 9223372036854775807", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 9223372036854775807", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 113 - integers.json: "equality checks" - "beyond int64 lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 114 - integers.json: "equality checks" - "int64 lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 115 - integers.json: "equality checks" - "beyond int32 lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 116 - integers.json: "equality checks" - "int32 lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 117 - integers.json: "equality checks" - "zero" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 118 - integers.json: "equality checks" - "one" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/enum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/enum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 119 - integers.json: "equality checks" - "int32 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 120 - integers.json: "equality checks" - "beyond int32 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 121 - integers.json: "equality checks" - "int64 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 122 - integers.json: "equality checks" - "beyond int64 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s # 77s ok 123 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 124 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 125 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 126 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 127 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 128 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 129 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 130 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 131 - keyword-independence.json: "contains + maximum" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 132 - keyword-independence.json: "contains + maximum" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 133 - keyword-independence.json: "contains + maximum" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 134 - keyword-independence.json: "contains + maximum" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 135 - keyword-independence.json: "contains + minimum" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 136 - keyword-independence.json: "contains + minimum" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 137 - keyword-independence.json: "contains + minimum" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 138 - keyword-independence.json: "contains + minimum" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 139 - keyword-independence.json: "contains + multipleOf" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 140 - keyword-independence.json: "contains + multipleOf" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 141 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 142 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 143 - keyword-independence.json: "exclusiveMaximum + items" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 144 - keyword-independence.json: "exclusiveMaximum + items" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 145 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 146 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 147 - keyword-independence.json: "exclusiveMinimum + items" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 148 - keyword-independence.json: "exclusiveMinimum + items" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 149 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 150 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 151 - keyword-independence.json: "items + maximum" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 152 - keyword-independence.json: "items + maximum" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 153 - keyword-independence.json: "items + maximum" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 154 - keyword-independence.json: "items + maximum" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 155 - keyword-independence.json: "items + minimum" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 156 - keyword-independence.json: "items + minimum" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 157 - keyword-independence.json: "items + minimum" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 158 - keyword-independence.json: "items + minimum" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 159 - keyword-independence.json: "items + multipleOf" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 160 - keyword-independence.json: "items + multipleOf" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 161 - keyword-independence.json: "items + multipleOf" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 162 - keyword-independence.json: "items + multipleOf" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 163 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 164 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 165 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 166 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 167 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 168 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 169 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 170 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 171 - keyword-independence.json: "maxItems + maximum" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 172 - keyword-independence.json: "maxItems + maximum" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 173 - keyword-independence.json: "maxItems + maximum" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 174 - keyword-independence.json: "maxItems + maximum" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 175 - keyword-independence.json: "maxItems + minimum" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 176 - keyword-independence.json: "maxItems + minimum" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 177 - keyword-independence.json: "maxItems + minimum" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 178 - keyword-independence.json: "maxItems + minimum" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 179 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 180 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 181 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 182 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 183 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 184 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 185 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 186 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 187 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 188 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 189 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 190 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 191 - keyword-independence.json: "maximum + minItems" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 192 - keyword-independence.json: "maximum + minItems" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 193 - keyword-independence.json: "maximum + minItems" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 194 - keyword-independence.json: "maximum + minItems" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 195 - keyword-independence.json: "minItems + minimum" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 196 - keyword-independence.json: "minItems + minimum" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 197 - keyword-independence.json: "minItems + minimum" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 198 - keyword-independence.json: "minItems + minimum" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 199 - keyword-independence.json: "minItems + multipleOf" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 200 - keyword-independence.json: "minItems + multipleOf" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 201 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 202 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 203 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 204 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 205 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 206 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 207 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 208 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 209 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 210 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 211 - keyword-independence.json: "maximum + prefixItems" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 212 - keyword-independence.json: "maximum + prefixItems" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 213 - keyword-independence.json: "maximum + prefixItems" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 214 - keyword-independence.json: "maximum + prefixItems" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 215 - keyword-independence.json: "minimum + prefixItems" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 216 - keyword-independence.json: "minimum + prefixItems" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 217 - keyword-independence.json: "minimum + prefixItems" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 218 - keyword-independence.json: "minimum + prefixItems" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 219 - keyword-independence.json: "multipleOf + prefixItems" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 220 - keyword-independence.json: "multipleOf + prefixItems" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 221 - keyword-independence.json: "multipleOf + prefixItems" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 222 - keyword-independence.json: "multipleOf + prefixItems" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 223 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 224 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 225 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 226 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 227 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 228 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 229 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 230 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 231 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 232 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 233 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 234 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 235 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 236 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 237 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 238 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 239 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 240 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 241 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 242 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 243 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 244 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 245 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 246 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 247 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 248 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 249 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 250 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 251 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 252 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 253 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 254 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 255 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 256 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 257 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 258 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 259 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 260 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 261 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 262 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 263 - keyword-independence.json: "additionalProperties + contains" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 264 - keyword-independence.json: "additionalProperties + contains" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 265 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 266 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 267 - keyword-independence.json: "contains + dependentRequired" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 268 - keyword-independence.json: "contains + dependentRequired" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 269 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 270 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 271 - keyword-independence.json: "contains + dependentSchemas" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 272 - keyword-independence.json: "contains + dependentSchemas" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 273 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 274 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 275 - keyword-independence.json: "contains + maxProperties" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 276 - keyword-independence.json: "contains + maxProperties" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 277 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 278 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 279 - keyword-independence.json: "contains + minProperties" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 280 - keyword-independence.json: "contains + minProperties" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 281 - keyword-independence.json: "contains + minProperties" - "object, minProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 282 - keyword-independence.json: "contains + minProperties" - "object, minProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 283 - keyword-independence.json: "contains + patternProperties" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 284 - keyword-independence.json: "contains + patternProperties" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 285 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 286 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 287 - keyword-independence.json: "contains + properties" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 288 - keyword-independence.json: "contains + properties" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 289 - keyword-independence.json: "contains + properties" - "object, properties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 290 - keyword-independence.json: "contains + properties" - "object, properties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 291 - keyword-independence.json: "contains + propertyNames" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 292 - keyword-independence.json: "contains + propertyNames" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 293 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 294 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 295 - keyword-independence.json: "contains + required" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 296 - keyword-independence.json: "contains + required" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 297 - keyword-independence.json: "contains + required" - "object, required invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 298 - keyword-independence.json: "contains + required" - "object, required valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 299 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 300 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 301 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 302 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 303 - keyword-independence.json: "additionalProperties + items" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 304 - keyword-independence.json: "additionalProperties + items" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 305 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 306 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 307 - keyword-independence.json: "dependentRequired + items" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 308 - keyword-independence.json: "dependentRequired + items" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 309 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 310 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 311 - keyword-independence.json: "dependentSchemas + items" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 312 - keyword-independence.json: "dependentSchemas + items" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 313 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 314 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 315 - keyword-independence.json: "items + maxProperties" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 316 - keyword-independence.json: "items + maxProperties" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 317 - keyword-independence.json: "items + maxProperties" - "object, maxProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 318 - keyword-independence.json: "items + maxProperties" - "object, maxProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 319 - keyword-independence.json: "items + minProperties" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 320 - keyword-independence.json: "items + minProperties" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 321 - keyword-independence.json: "items + minProperties" - "object, minProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 322 - keyword-independence.json: "items + minProperties" - "object, minProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 323 - keyword-independence.json: "items + patternProperties" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 324 - keyword-independence.json: "items + patternProperties" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 325 - keyword-independence.json: "items + patternProperties" - "object, patternProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 326 - keyword-independence.json: "items + patternProperties" - "object, patternProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 327 - keyword-independence.json: "items + properties" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 328 - keyword-independence.json: "items + properties" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 329 - keyword-independence.json: "items + properties" - "object, properties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 330 - keyword-independence.json: "items + properties" - "object, properties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 331 - keyword-independence.json: "items + propertyNames" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 332 - keyword-independence.json: "items + propertyNames" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 333 - keyword-independence.json: "items + propertyNames" - "object, propertyNames invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 334 - keyword-independence.json: "items + propertyNames" - "object, propertyNames valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 335 - keyword-independence.json: "items + required" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 336 - keyword-independence.json: "items + required" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 337 - keyword-independence.json: "items + required" - "object, required invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 338 - keyword-independence.json: "items + required" - "object, required valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 339 - keyword-independence.json: "items + unevaluatedProperties" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 340 - keyword-independence.json: "items + unevaluatedProperties" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 341 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 342 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 343 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 344 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 345 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 346 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 347 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 348 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 349 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 350 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 351 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 352 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 353 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 354 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 355 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 356 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 357 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 358 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 359 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 360 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 361 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 362 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 363 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 364 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 365 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 366 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 367 - keyword-independence.json: "maxItems + properties" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 368 - keyword-independence.json: "maxItems + properties" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 369 - keyword-independence.json: "maxItems + properties" - "object, properties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 370 - keyword-independence.json: "maxItems + properties" - "object, properties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 371 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 372 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 373 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 374 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 375 - keyword-independence.json: "maxItems + required" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 376 - keyword-independence.json: "maxItems + required" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 377 - keyword-independence.json: "maxItems + required" - "object, required invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 378 - keyword-independence.json: "maxItems + required" - "object, required valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 379 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 380 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 381 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 382 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 383 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 384 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 385 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 386 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 387 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 388 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 389 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 390 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 391 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 392 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 393 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 394 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 395 - keyword-independence.json: "maxProperties + minItems" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 396 - keyword-independence.json: "maxProperties + minItems" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 397 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 398 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 399 - keyword-independence.json: "minItems + minProperties" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 400 - keyword-independence.json: "minItems + minProperties" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 401 - keyword-independence.json: "minItems + minProperties" - "object, minProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 402 - keyword-independence.json: "minItems + minProperties" - "object, minProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 403 - keyword-independence.json: "minItems + patternProperties" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 404 - keyword-independence.json: "minItems + patternProperties" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 405 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 406 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 407 - keyword-independence.json: "minItems + properties" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 408 - keyword-independence.json: "minItems + properties" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 409 - keyword-independence.json: "minItems + properties" - "object, properties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 410 - keyword-independence.json: "minItems + properties" - "object, properties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 411 - keyword-independence.json: "minItems + propertyNames" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 412 - keyword-independence.json: "minItems + propertyNames" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 413 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 414 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 415 - keyword-independence.json: "minItems + required" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 416 - keyword-independence.json: "minItems + required" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 417 - keyword-independence.json: "minItems + required" - "object, required invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 418 - keyword-independence.json: "minItems + required" - "object, required valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 419 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 420 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 421 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 422 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 423 - keyword-independence.json: "additionalProperties + prefixItems" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 424 - keyword-independence.json: "additionalProperties + prefixItems" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 425 - keyword-independence.json: "additionalProperties + prefixItems" - "object, additionalProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 426 - keyword-independence.json: "additionalProperties + prefixItems" - "object, additionalProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 427 - keyword-independence.json: "dependentRequired + prefixItems" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 428 - keyword-independence.json: "dependentRequired + prefixItems" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 429 - keyword-independence.json: "dependentRequired + prefixItems" - "object, dependentRequired invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 430 - keyword-independence.json: "dependentRequired + prefixItems" - "object, dependentRequired valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 431 - keyword-independence.json: "dependentSchemas + prefixItems" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 432 - keyword-independence.json: "dependentSchemas + prefixItems" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 433 - keyword-independence.json: "dependentSchemas + prefixItems" - "object, dependentSchemas invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 434 - keyword-independence.json: "dependentSchemas + prefixItems" - "object, dependentSchemas valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 435 - keyword-independence.json: "maxProperties + prefixItems" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 436 - keyword-independence.json: "maxProperties + prefixItems" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 437 - keyword-independence.json: "maxProperties + prefixItems" - "object, maxProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 438 - keyword-independence.json: "maxProperties + prefixItems" - "object, maxProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 439 - keyword-independence.json: "minProperties + prefixItems" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 440 - keyword-independence.json: "minProperties + prefixItems" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 441 - keyword-independence.json: "minProperties + prefixItems" - "object, minProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 442 - keyword-independence.json: "minProperties + prefixItems" - "object, minProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 443 - keyword-independence.json: "patternProperties + prefixItems" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 444 - keyword-independence.json: "patternProperties + prefixItems" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 445 - keyword-independence.json: "patternProperties + prefixItems" - "object, patternProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 446 - keyword-independence.json: "patternProperties + prefixItems" - "object, patternProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 447 - keyword-independence.json: "prefixItems + properties" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 448 - keyword-independence.json: "prefixItems + properties" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 449 - keyword-independence.json: "prefixItems + properties" - "object, properties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 450 - keyword-independence.json: "prefixItems + properties" - "object, properties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 451 - keyword-independence.json: "prefixItems + propertyNames" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 452 - keyword-independence.json: "prefixItems + propertyNames" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 453 - keyword-independence.json: "prefixItems + propertyNames" - "object, propertyNames invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 454 - keyword-independence.json: "prefixItems + propertyNames" - "object, propertyNames valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 455 - keyword-independence.json: "prefixItems + required" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 456 - keyword-independence.json: "prefixItems + required" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 457 - keyword-independence.json: "prefixItems + required" - "object, required invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 458 - keyword-independence.json: "prefixItems + required" - "object, required valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 459 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 460 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 461 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 462 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 463 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 464 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 465 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 466 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 467 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 468 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 469 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 470 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 471 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 472 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 473 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 474 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 475 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 476 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 477 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 478 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 479 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 480 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 481 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 482 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 483 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 484 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 485 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 486 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 487 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 488 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 489 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 490 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 491 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 492 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 493 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 494 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 495 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 496 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 497 - keyword-independence.json: "required + unevaluatedItems" - "object, required invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 498 - keyword-independence.json: "required + unevaluatedItems" - "object, required valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 499 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 500 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 501 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 502 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 503 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 504 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 505 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 506 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 507 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 508 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 509 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 510 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 511 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 512 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 513 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 514 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 515 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 516 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 517 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 518 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 519 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 520 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 521 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 522 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 523 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 524 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 525 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 526 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 527 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 528 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 529 - keyword-independence.json: "properties + uniqueItems" - "object, properties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 530 - keyword-independence.json: "properties + uniqueItems" - "object, properties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 531 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 532 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 533 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 534 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 535 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 536 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 537 - keyword-independence.json: "required + uniqueItems" - "object, required invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 538 - keyword-independence.json: "required + uniqueItems" - "object, required valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 539 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 540 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 541 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 542 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 543 - keyword-independence.json: "contains + maxLength" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 544 - keyword-independence.json: "contains + maxLength" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 545 - keyword-independence.json: "contains + maxLength" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 546 - keyword-independence.json: "contains + maxLength" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 547 - keyword-independence.json: "contains + minLength" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 548 - keyword-independence.json: "contains + minLength" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 549 - keyword-independence.json: "contains + minLength" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 550 - keyword-independence.json: "contains + minLength" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 551 - keyword-independence.json: "contains + pattern" - "array, contains invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is not valid against any item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/contains" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 552 - keyword-independence.json: "contains + pattern" - "array, contains valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 553 - keyword-independence.json: "contains + pattern" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 554 - keyword-independence.json: "contains + pattern" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 555 - keyword-independence.json: "items + maxLength" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 556 - keyword-independence.json: "items + maxLength" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 557 - keyword-independence.json: "items + maxLength" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 558 - keyword-independence.json: "items + maxLength" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 559 - keyword-independence.json: "items + minLength" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 560 - keyword-independence.json: "items + minLength" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 561 - keyword-independence.json: "items + minLength" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 562 - keyword-independence.json: "items + minLength" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 563 - keyword-independence.json: "items + pattern" - "array, items invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/items" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 564 - keyword-independence.json: "items + pattern" - "array, items valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 565 - keyword-independence.json: "items + pattern" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 566 - keyword-independence.json: "items + pattern" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 567 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 568 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 569 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 570 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 571 - keyword-independence.json: "maxItems + minLength" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 572 - keyword-independence.json: "maxItems + minLength" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 573 - keyword-independence.json: "maxItems + minLength" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 574 - keyword-independence.json: "maxItems + minLength" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 575 - keyword-independence.json: "maxItems + pattern" - "array, maxItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has more than 1 item", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 576 - keyword-independence.json: "maxItems + pattern" - "array, maxItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 577 - keyword-independence.json: "maxItems + pattern" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 578 - keyword-independence.json: "maxItems + pattern" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 579 - keyword-independence.json: "maxLength + minItems" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 580 - keyword-independence.json: "maxLength + minItems" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 581 - keyword-independence.json: "maxLength + minItems" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 582 - keyword-independence.json: "maxLength + minItems" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 583 - keyword-independence.json: "minItems + minLength" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 584 - keyword-independence.json: "minItems + minLength" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 585 - keyword-independence.json: "minItems + minLength" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 586 - keyword-independence.json: "minItems + minLength" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 587 - keyword-independence.json: "minItems + pattern" - "array, minItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "array has fewer than 2 items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 588 - keyword-independence.json: "minItems + pattern" - "array, minItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 589 - keyword-independence.json: "minItems + pattern" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 590 - keyword-independence.json: "minItems + pattern" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 591 - keyword-independence.json: "maxLength + prefixItems" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 592 - keyword-independence.json: "maxLength + prefixItems" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 593 - keyword-independence.json: "maxLength + prefixItems" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 594 - keyword-independence.json: "maxLength + prefixItems" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 595 - keyword-independence.json: "minLength + prefixItems" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 596 - keyword-independence.json: "minLength + prefixItems" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 597 - keyword-independence.json: "minLength + prefixItems" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 598 - keyword-independence.json: "minLength + prefixItems" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 599 - keyword-independence.json: "pattern + prefixItems" - "array, prefixItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/prefixItems/0" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 600 - keyword-independence.json: "pattern + prefixItems" - "array, prefixItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 601 - keyword-independence.json: "pattern + prefixItems" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 602 - keyword-independence.json: "pattern + prefixItems" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 603 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 604 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 605 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 606 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 607 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 608 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 609 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 610 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 611 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional item not permitted", 77s # "instanceLocation": "/0", 77s # "keywordLocation": "/unevaluatedItems" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 612 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 613 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 614 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 615 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 616 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 617 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 618 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 619 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 620 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 621 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 622 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 623 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "items at indices 0 and 1 are not unique", 77s # "instanceLocation": "", 77s # "keywordLocation": "/uniqueItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 624 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 625 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 626 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 627 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 628 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 629 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 630 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 631 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 632 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 633 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 634 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 635 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 636 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 637 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 638 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 639 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 640 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 641 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 642 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 643 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 644 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 645 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 646 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 647 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 648 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 649 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 650 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 651 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 652 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 653 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 654 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 655 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 656 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 657 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 658 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 659 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 660 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 661 - keyword-independence.json: "exclusiveMaximum + required" - "object, required invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 662 - keyword-independence.json: "exclusiveMaximum + required" - "object, required valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 663 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 664 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 665 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 666 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 667 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 668 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 669 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 670 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 671 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 672 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 673 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 674 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 675 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 676 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 677 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 678 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 679 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 680 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 681 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 682 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 683 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 684 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 685 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 686 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 687 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 688 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 689 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 690 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 691 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 692 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 693 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 694 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 695 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 696 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 697 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 698 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 699 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 700 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 701 - keyword-independence.json: "exclusiveMinimum + required" - "object, required invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 702 - keyword-independence.json: "exclusiveMinimum + required" - "object, required valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 703 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 704 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 705 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 706 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 707 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 708 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 709 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 710 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 711 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 712 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 713 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 714 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 715 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 716 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 717 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 718 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 719 - keyword-independence.json: "maxProperties + maximum" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 720 - keyword-independence.json: "maxProperties + maximum" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 721 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 722 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 723 - keyword-independence.json: "maximum + minProperties" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 724 - keyword-independence.json: "maximum + minProperties" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 725 - keyword-independence.json: "maximum + minProperties" - "object, minProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 726 - keyword-independence.json: "maximum + minProperties" - "object, minProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 727 - keyword-independence.json: "maximum + patternProperties" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 728 - keyword-independence.json: "maximum + patternProperties" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 729 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 730 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 731 - keyword-independence.json: "maximum + properties" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 732 - keyword-independence.json: "maximum + properties" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 733 - keyword-independence.json: "maximum + properties" - "object, properties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 734 - keyword-independence.json: "maximum + properties" - "object, properties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 735 - keyword-independence.json: "maximum + propertyNames" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 736 - keyword-independence.json: "maximum + propertyNames" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 737 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 738 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 739 - keyword-independence.json: "maximum + required" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 740 - keyword-independence.json: "maximum + required" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 741 - keyword-independence.json: "maximum + required" - "object, required invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 742 - keyword-independence.json: "maximum + required" - "object, required valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 743 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 744 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 745 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 746 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 747 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 748 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 749 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 750 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 751 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 752 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 753 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 754 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 755 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 756 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 757 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 758 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 759 - keyword-independence.json: "maxProperties + minimum" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 760 - keyword-independence.json: "maxProperties + minimum" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 761 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 762 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 763 - keyword-independence.json: "minProperties + minimum" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 764 - keyword-independence.json: "minProperties + minimum" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 765 - keyword-independence.json: "minProperties + minimum" - "object, minProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 766 - keyword-independence.json: "minProperties + minimum" - "object, minProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 767 - keyword-independence.json: "minimum + patternProperties" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 768 - keyword-independence.json: "minimum + patternProperties" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 769 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 770 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 771 - keyword-independence.json: "minimum + properties" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 772 - keyword-independence.json: "minimum + properties" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 773 - keyword-independence.json: "minimum + properties" - "object, properties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 774 - keyword-independence.json: "minimum + properties" - "object, properties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 775 - keyword-independence.json: "minimum + propertyNames" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 776 - keyword-independence.json: "minimum + propertyNames" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 777 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 778 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 779 - keyword-independence.json: "minimum + required" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 780 - keyword-independence.json: "minimum + required" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 781 - keyword-independence.json: "minimum + required" - "object, required invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 782 - keyword-independence.json: "minimum + required" - "object, required valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 783 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 784 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 785 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 786 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 787 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 788 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 789 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 790 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 791 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 792 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 793 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 794 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 795 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 796 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 797 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 798 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 799 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 800 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 801 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 802 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 803 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 804 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 805 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 806 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 807 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 808 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 809 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 810 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 811 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 812 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 813 - keyword-independence.json: "multipleOf + properties" - "object, properties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 814 - keyword-independence.json: "multipleOf + properties" - "object, properties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 815 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 816 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 817 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 818 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 819 - keyword-independence.json: "multipleOf + required" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 820 - keyword-independence.json: "multipleOf + required" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 821 - keyword-independence.json: "multipleOf + required" - "object, required invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 822 - keyword-independence.json: "multipleOf + required" - "object, required valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 823 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 824 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 825 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 826 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 827 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 828 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 829 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 830 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 831 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 832 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 833 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 834 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 835 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMaximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 836 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 837 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 838 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 839 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 840 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 841 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 842 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 843 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 844 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 845 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 846 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 847 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than or equal to 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/exclusiveMinimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 848 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 849 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 850 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 851 - keyword-independence.json: "maxLength + maximum" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 852 - keyword-independence.json: "maxLength + maximum" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 853 - keyword-independence.json: "maxLength + maximum" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 854 - keyword-independence.json: "maxLength + maximum" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 855 - keyword-independence.json: "maximum + minLength" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 856 - keyword-independence.json: "maximum + minLength" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 857 - keyword-independence.json: "maximum + minLength" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 858 - keyword-independence.json: "maximum + minLength" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 859 - keyword-independence.json: "maximum + pattern" - "number, maximum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 860 - keyword-independence.json: "maximum + pattern" - "number, maximum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 861 - keyword-independence.json: "maximum + pattern" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 862 - keyword-independence.json: "maximum + pattern" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 863 - keyword-independence.json: "maxLength + minimum" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 864 - keyword-independence.json: "maxLength + minimum" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 865 - keyword-independence.json: "maxLength + minimum" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 866 - keyword-independence.json: "maxLength + minimum" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 867 - keyword-independence.json: "minLength + minimum" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 868 - keyword-independence.json: "minLength + minimum" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 869 - keyword-independence.json: "minLength + minimum" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 870 - keyword-independence.json: "minLength + minimum" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 871 - keyword-independence.json: "minimum + pattern" - "number, minimum invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 872 - keyword-independence.json: "minimum + pattern" - "number, minimum valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 873 - keyword-independence.json: "minimum + pattern" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 874 - keyword-independence.json: "minimum + pattern" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 875 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 876 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 877 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 878 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 879 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 880 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 881 - keyword-independence.json: "minLength + multipleOf" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 882 - keyword-independence.json: "minLength + multipleOf" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 883 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/multipleOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 884 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 885 - keyword-independence.json: "multipleOf + pattern" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 886 - keyword-independence.json: "multipleOf + pattern" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 887 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 888 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 889 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 890 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 891 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 892 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 893 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 894 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 895 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/additionalProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 896 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 897 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 898 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 899 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 900 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 901 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 902 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 903 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 904 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 905 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 906 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 907 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: y", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentRequired" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 908 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 909 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 910 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 911 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 912 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 913 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 914 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 915 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 916 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 917 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 918 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 919 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas/x" 77s # }, 77s # { 77s # "error": "not all dependencies are satisfied", 77s # "instanceLocation": "", 77s # "keywordLocation": "/dependentSchemas" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 920 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 921 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 922 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 923 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 924 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 925 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 926 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 927 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 928 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 929 - keyword-independence.json: "maxProperties + minLength" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 930 - keyword-independence.json: "maxProperties + minLength" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 931 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has more than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 932 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 933 - keyword-independence.json: "maxProperties + pattern" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 934 - keyword-independence.json: "maxProperties + pattern" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 935 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 936 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 937 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 938 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 939 - keyword-independence.json: "minLength + minProperties" - "object, minProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 940 - keyword-independence.json: "minLength + minProperties" - "object, minProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 941 - keyword-independence.json: "minLength + minProperties" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 942 - keyword-independence.json: "minLength + minProperties" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 943 - keyword-independence.json: "minProperties + pattern" - "object, minProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object has fewer than 1 property", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 944 - keyword-independence.json: "minProperties + pattern" - "object, minProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 945 - keyword-independence.json: "minProperties + pattern" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 946 - keyword-independence.json: "minProperties + pattern" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 947 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 948 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 949 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 950 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 951 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 952 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 953 - keyword-independence.json: "minLength + patternProperties" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 954 - keyword-independence.json: "minLength + patternProperties" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 955 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/no", 77s # "keywordLocation": "/patternProperties/no" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 956 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 957 - keyword-independence.json: "pattern + patternProperties" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 958 - keyword-independence.json: "pattern + patternProperties" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 959 - keyword-independence.json: "maxLength + properties" - "object, properties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 960 - keyword-independence.json: "maxLength + properties" - "object, properties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 961 - keyword-independence.json: "maxLength + properties" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 962 - keyword-independence.json: "maxLength + properties" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 963 - keyword-independence.json: "minLength + properties" - "object, properties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 964 - keyword-independence.json: "minLength + properties" - "object, properties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 965 - keyword-independence.json: "minLength + properties" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 966 - keyword-independence.json: "minLength + properties" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 967 - keyword-independence.json: "pattern + properties" - "object, properties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/properties/x" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 968 - keyword-independence.json: "pattern + properties" - "object, properties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 969 - keyword-independence.json: "pattern + properties" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 970 - keyword-independence.json: "pattern + properties" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 971 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 972 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 973 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 974 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 975 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 976 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 977 - keyword-independence.json: "minLength + propertyNames" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 978 - keyword-independence.json: "minLength + propertyNames" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 979 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "subschema is false", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/propertyNames" 77s # }, 77s # { 77s # "error": "not all property names are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/propertyNames" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 980 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 981 - keyword-independence.json: "pattern + propertyNames" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 982 - keyword-independence.json: "pattern + propertyNames" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 983 - keyword-independence.json: "maxLength + required" - "object, required invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 984 - keyword-independence.json: "maxLength + required" - "object, required valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 985 - keyword-independence.json: "maxLength + required" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 986 - keyword-independence.json: "maxLength + required" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 987 - keyword-independence.json: "minLength + required" - "object, required invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 988 - keyword-independence.json: "minLength + required" - "object, required valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 989 - keyword-independence.json: "minLength + required" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 990 - keyword-independence.json: "minLength + required" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 991 - keyword-independence.json: "pattern + required" - "object, required invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "object is missing property: x", 77s # "instanceLocation": "", 77s # "keywordLocation": "/required" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 992 - keyword-independence.json: "pattern + required" - "object, required valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 993 - keyword-independence.json: "pattern + required" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 994 - keyword-independence.json: "pattern + required" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 995 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 996 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 997 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is greater than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maxLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 998 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 999 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1000 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1001 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "length is less than 2", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minLength" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1002 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1003 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "additional property not permitted", 77s # "instanceLocation": "/x", 77s # "keywordLocation": "/unevaluatedProperties" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1004 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1005 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "pattern does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/pattern" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1006 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s # 77s ok 1007 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does not match string" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value does not match", 77s # "instanceLocation": "/const_string", 77s # "keywordLocation": "/properties/const_string/const" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value does not match", 77s # "instanceLocation": "/const_string", 77s # "keywordLocation": "/properties/const_string/const" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1008 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does match number" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1009 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value matches string" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1010 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value does not match number" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value does not match", 77s # "instanceLocation": "/const_number", 77s # "keywordLocation": "/properties/const_number/const" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value does not match", 77s # "instanceLocation": "/const_number", 77s # "keywordLocation": "/properties/const_number/const" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1011 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does not match string" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value does not match", 77s # "instanceLocation": "/enum_string", 77s # "keywordLocation": "/properties/enum_string/enum" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value does not match", 77s # "instanceLocation": "/enum_string", 77s # "keywordLocation": "/properties/enum_string/enum" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1012 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does match number" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1013 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value matches string" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1014 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value does not match number" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value does not match", 77s # "instanceLocation": "/enum_number", 77s # "keywordLocation": "/properties/enum_number/enum" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value does not match", 77s # "instanceLocation": "/enum_number", 77s # "keywordLocation": "/properties/enum_number/enum" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 1015 - recursive-dynamic.json: "dynamic $dynamicRef destination (not predictable at schema compile time)" - "numeric node" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1016 - recursive-dynamic.json: "dynamic $dynamicRef destination (not predictable at schema compile time)" - "integer node" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "integerNode.json#/type", 77s # "error": "got number, not one of object, integer", 77s # "instanceLocation": "/november", 77s # "keywordLocation": "/else/$ref/additionalProperties/$dynamicRef/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/else/$ref/additionalProperties" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "main.json#/else", 77s # "error": "subschema is not valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/else" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "integerNode.json#/type", 77s # "error": "got number, not one of object, integer", 77s # "instanceLocation": "/november", 77s # "keywordLocation": "/else/$ref/additionalProperties/$dynamicRef/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/else/$ref/additionalProperties" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "main.json#/else", 77s # "error": "subschema is not valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/else" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 1017 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with $anchors)" - "data is valid against first definition" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1018 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with $anchors)" - "data is invalid against first definition" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 77s # "error": "value is greater than 10", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$ref/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 77s # "error": "value is greater than 10", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$ref/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1019 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with uris)" - "data is valid against first definition" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1020 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with uris)" - "data is invalid against first definition" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 77s # "error": "value is greater than 10", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$ref/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 77s # "error": "value is greater than 10", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$ref/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1021 - 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" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1022 - 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" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 77s # "error": "got string, not number", 77s # "instanceLocation": "", 77s # "keywordLocation": "/allOf/0/$ref/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 77s # "error": "got string, not number", 77s # "instanceLocation": "", 77s # "keywordLocation": "/allOf/0/oneOf/0/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf", 77s # "error": "no subschemas are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/allOf/0/oneOf" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 77s # "error": "subschema 0 is not valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/allOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 77s # "error": "got string, not number", 77s # "instanceLocation": "", 77s # "keywordLocation": "/allOf/0/$ref/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 77s # "error": "subschema 0 is not valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/allOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 1023 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1024 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 77s # "error": "value is greater than 10", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$ref/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 77s # "error": "value is greater than 10", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$ref/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1025 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1026 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 77s # "error": "value is greater than 10", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$ref/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 77s # "error": "value is greater than 10", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$ref/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1027 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/enum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/enum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1028 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1029 - ref.json: "invalid $ref: invalid anchor fragment" - "an invalid anchor fragment" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "$ref value is not a valid URI-reference", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$defs/foo/$ref" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "$ref value is not a valid URI-reference", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$defs/foo/$ref" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1030 - ref.json: "invalid $ref: invalid json-pointer fragment" - "an invalid json-pointer fragment" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "$ref value is not a valid URI-reference", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$defs/foo/$ref" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "$ref value is not a valid URI-reference", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$defs/foo/$ref" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1031 - ref.json: "base URI change - change folder in subschema with path from root" - "number is valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1032 - ref.json: "base URI change - change folder in subschema with path from root" - "string is invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 77s # "error": "got string, not integer", 77s # "instanceLocation": "/list/0", 77s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "/list", 77s # "keywordLocation": "/properties/list/$ref/items" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 77s # "error": "got string, not integer", 77s # "instanceLocation": "/list/0", 77s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "/list", 77s # "keywordLocation": "/properties/list/$ref/items" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 1033 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "single item is valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1034 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "second item is invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "/1", 77s # "keywordLocation": "/items/multipleOf" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "/1", 77s # "keywordLocation": "/items/multipleOf" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1035 - short-circuit.json: "prefixItems does not improperly short-circuit" - "single item is valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1036 - short-circuit.json: "prefixItems does not improperly short-circuit" - "second item is invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "/1", 77s # "keywordLocation": "/prefixItems/1/multipleOf" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "/1", 77s # "keywordLocation": "/prefixItems/1/multipleOf" 77s # }, 77s # { 77s # "error": "not all items are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/prefixItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1037 - short-circuit.json: "items does not improperly short-circuit" - "single additional item is valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1038 - short-circuit.json: "items does not improperly short-circuit" - "second additional item is invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "/2", 77s # "keywordLocation": "/items/multipleOf" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "/2", 77s # "keywordLocation": "/items/multipleOf" 77s # }, 77s # { 77s # "error": "subschema is not valid against all items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/items" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1039 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "single item is valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1040 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "second item is invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "/1", 77s # "keywordLocation": "/unevaluatedItems/multipleOf" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "/1", 77s # "keywordLocation": "/unevaluatedItems/multipleOf" 77s # }, 77s # { 77s # "error": "subschema is not valid against all additional items", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedItems" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1041 - short-circuit.json: "properties does not improperly short-circuit" - "single property is valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1042 - short-circuit.json: "properties does not improperly short-circuit" - "second property is invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "/beta", 77s # "keywordLocation": "/properties/beta/multipleOf" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "/beta", 77s # "keywordLocation": "/properties/beta/multipleOf" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1043 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1044 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/beta", 77s # "keywordLocation": "/properties/beta" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/beta", 77s # "keywordLocation": "/properties/beta" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/properties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1045 - short-circuit.json: "patternProperties does not improperly short-circuit" - "single property is valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1046 - short-circuit.json: "patternProperties does not improperly short-circuit" - "second property is invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "/beta", 77s # "keywordLocation": "/patternProperties/^b/multipleOf" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "/beta", 77s # "keywordLocation": "/patternProperties/^b/multipleOf" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1047 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1048 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/beta", 77s # "keywordLocation": "/patternProperties/^b" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "property not permitted", 77s # "instanceLocation": "/beta", 77s # "keywordLocation": "/patternProperties/^b" 77s # }, 77s # { 77s # "error": "not all properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/patternProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1049 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "single property is valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1050 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "second property is invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "/beta", 77s # "keywordLocation": "/additionalProperties/multipleOf" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "/beta", 77s # "keywordLocation": "/additionalProperties/multipleOf" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/additionalProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1051 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "single property is valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1052 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "second property is invalid" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "/beta", 77s # "keywordLocation": "/unevaluatedProperties/multipleOf" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is not a multiple of 2", 77s # "instanceLocation": "/beta", 77s # "keywordLocation": "/unevaluatedProperties/multipleOf" 77s # }, 77s # { 77s # "error": "not all additional properties are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/unevaluatedProperties" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 1053 - unknownKeyword.json: "past and future keywords are ignored" - "passing" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1054 - unknownKeyword.json: "past and future keywords are ignored" - "failing (string)" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "got string, not number", 77s # "instanceLocation": "", 77s # "keywordLocation": "/type" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "got string, not number", 77s # "instanceLocation": "", 77s # "keywordLocation": "/type" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1055 - unknownKeyword.json: "past and future keywords are ignored" - "failing (object)" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "got object, not number", 77s # "instanceLocation": "", 77s # "keywordLocation": "/type" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "got object, not number", 77s # "instanceLocation": "", 77s # "keywordLocation": "/type" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1056 - unknownKeyword.json: "past and future keywords are ignored" - "failing (array)" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "got array, not number", 77s # "instanceLocation": "", 77s # "keywordLocation": "/type" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "got array, not number", 77s # "instanceLocation": "", 77s # "keywordLocation": "/type" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 1057 - vocabulary.json: "valid $vocabulary" - "a valid $vocabulary value" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1058 - vocabulary.json: "invalid $vocabulary (wrong specification version), but not until we evaluate with this metaschema" - "invalid $vocabulary (wrong specification version): register this metaschema" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1059 - vocabulary.json: "use schema (invalid $vocabulary) as a metaschema" - "invalid $vocabulary value: wrong specification version" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core", 77s # "error": "\"https://json-schema.org/draft/2019-09/vocab/core\" uses draft2019-09, but the metaschema itself uses draft2020-12", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 77s # "error": "the first vocabulary (by evaluation_order) must be Core", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$schema/$vocabulary" 77s # }, 77s # { 77s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$schema" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core", 77s # "error": "\"https://json-schema.org/draft/2019-09/vocab/core\" uses draft2019-09, but the metaschema itself uses draft2020-12", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 77s # "error": "the first vocabulary (by evaluation_order) must be Core", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$schema/$vocabulary" 77s # }, 77s # { 77s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$schema" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1060 - vocabulary.json: "invalid $vocabulary (unknown URI), but not until we evaluate with this metaschema" - "invalid $vocabulary (unknown URI): register this metaschema" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1061 - vocabulary.json: "use schema (unknown URI) as a metaschema" - "invalid $vocabulary value: unknown URI" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 77s # "error": "\"https://foo.com\" is not a known vocabulary", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 77s # }, 77s # { 77s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$schema" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 77s # "error": "\"https://foo.com\" is not a known vocabulary", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 77s # }, 77s # { 77s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 77s # "instanceLocation": "", 77s # "keywordLocation": "/$schema" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1062 - vocabulary.json: "custom metaschema with format-assertion: false" - "custom metaschema is loaded" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1063 - vocabulary.json: "custom metaschema with format-assertion: true" - "custom metaschema is loaded" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1064 - vocabulary.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: valid string" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1065 - vocabulary.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: invalid string" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 77s # "error": "not a valid ipv4", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 77s # "error": "not a valid ipv4", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 1066 - vocabulary.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: valid string" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 1067 - vocabulary.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: invalid string" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 77s # "error": "not a valid ipv4", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 77s # "error": "not a valid ipv4", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s # generated with: Test::JSON::Schema::Acceptance 1.029 77s # specification version: draft2020-12 77s # using custom test directory: t/additional-tests-draft2020-12 77s # optional tests included: yes 77s # 77s # filename pass todo-fail fail 77s # --------------------------------------------------------------- 77s # anchor.json 2 0 0 77s # annotation-collection.json 10 0 0 77s # badRef.json 3 0 0 77s # dynamicRef.json 7 0 0 77s # faux-buggy-schemas.json 2 0 0 77s # format-date-time.json 4 0 0 77s # format-date.json 1 0 0 77s # format-duration.json 9 0 0 77s # format-ipv4.json 4 0 0 77s # format-ipv6.json 17 0 0 77s # format-relative-json-pointer.json 7 0 0 77s # format-time.json 13 0 0 77s # formats.json 4 0 0 77s # id.json 6 0 0 77s # integers.json 33 0 0 77s # keyword-independence.json 884 0 0 77s # loose-types-const-enum.json 8 0 0 77s # recursive-dynamic.json 2 0 0 77s # ref-and-id.json 6 0 0 77s # ref.json 10 0 0 77s # short-circuit.json 20 0 0 77s # unknownKeyword.json 4 0 0 77s # vocabulary.json 11 0 0 77s # --------------------------------------------------------------- 77s # TOTAL 1067 0 0 77s # 77s # Congratulations, all non-optional tests are passing! 77s # 77s ok 1068 - no leaks in the main evaluator object 77s ok 1069 - no leaks in the short-circuiting evaluator object 77s ok 1070 - got unsupported keyword warnings 77s 1..1070 77s ok 77s t/additional-tests-draft4.t ............. 77s # Seeded srand with seed '20251102' from local date. 77s # 77s # AUTHOR_TESTING: 77s # AUTOMATED_TESTING: 1 77s # EXTENDED_TESTING: 77s # NO_TODO: 77s # TEST_DIR: 77s # NO_SHORT_CIRCUIT: 77s # 77s # Using JSON decoder: Cpanel::JSON::XS 4.39 77s # 77s # running tests in /tmp/autopkgtest.bokkcv/autopkgtest_tmp/smokeLRh8t9/t/additional-tests-draft4 against draft4... 77s # 77s ok 1 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 2 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 3 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid date-time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid date-time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 4 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid date-time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid date-time string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 5 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv4 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv4 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 6 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv4 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv4 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 7 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 8 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv4 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv4 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 9 - format-ipv6.json: "validation of ipv6 strings" - "fully expanded with zeroes" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 10 - format-ipv6.json: "validation of ipv6 strings" - "partially collapsed zeroes" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 11 - format-ipv6.json: "validation of ipv6 strings" - "4,2 zeroes" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 12 - format-ipv6.json: "validation of ipv6 strings" - "8 single zeroes, no double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 13 - format-ipv6.json: "validation of ipv6 strings" - "7 single zeroes, leading double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 14 - format-ipv6.json: "validation of ipv6 strings" - "6 single zeroes, leading double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 15 - format-ipv6.json: "validation of ipv6 strings" - "5 single zeroes, leading double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 16 - format-ipv6.json: "validation of ipv6 strings" - "4 single zeroes, leading double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 17 - format-ipv6.json: "validation of ipv6 strings" - "3 single zeroes, leading double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 18 - format-ipv6.json: "validation of ipv6 strings" - "2 single zeroes, leading double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 19 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, leading double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 20 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, trailing double colon" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 21 - format-ipv6.json: "validation of ipv6 strings" - "2 leading colons with 8 zeroes" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 22 - format-ipv6.json: "validation of ipv6 strings" - "1 leading colon with 8 zeroes" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 23 - format-ipv6.json: "validation of ipv6 strings" - "colons in the middle with 8 zeroes" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 24 - format-ipv6.json: "validation of ipv6 strings" - "1 trailing colon with 8 zeroes" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 25 - format-ipv6.json: "validation of ipv6 strings" - "2 trailing colons with 8 zeroes" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "not a valid ipv6 string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/format" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 26 - id.json: "weird but valid use of non-empty plain name fragment in id" - "valid case, number" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 27 - id.json: "weird but valid use of non-empty plain name fragment in id" - "valid case, string" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 28 - id.json: "weird but valid use of non-empty plain name fragment in id" - "invalid case" { 77s # result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "https://example.com/def1#/type", 77s # "error": "got array, not number", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf/0/$ref/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "https://example.com/def2#/type", 77s # "error": "got array, not string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf/1/$ref/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "https://example.com/draft4-id-and-anchor#/anyOf", 77s # "error": "no subschemas are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "absoluteKeywordLocation": "https://example.com/def1#/type", 77s # "error": "got array, not number", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf/0/$ref/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "https://example.com/def2#/type", 77s # "error": "got array, not string", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf/1/$ref/type" 77s # }, 77s # { 77s # "absoluteKeywordLocation": "https://example.com/draft4-id-and-anchor#/anyOf", 77s # "error": "no subschemas are valid", 77s # "instanceLocation": "", 77s # "keywordLocation": "/anyOf" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s ok 29 - integers.json: "type checks" - "beyond int64 lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 30 - integers.json: "type checks" - "int64 lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 31 - integers.json: "type checks" - "beyond int32 lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 32 - integers.json: "type checks" - "int32 lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 33 - integers.json: "type checks" - "zero" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 34 - integers.json: "type checks" - "int32 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 35 - integers.json: "type checks" - "beyond int32 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 36 - integers.json: "type checks" - "uint32 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 37 - integers.json: "type checks" - "beyond uint32 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 38 - integers.json: "type checks" - "upper int64 boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 39 - integers.json: "type checks" - "beyond int64 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 40 - integers.json: "type checks" - "uint64 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 41 - integers.json: "type checks" - "beyond uint64 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 42 - integers.json: "int32 range checks" - "beyond lower boundary" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than -2147483648", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than -2147483648", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 43 - integers.json: "int32 range checks" - "lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 44 - integers.json: "int32 range checks" - "zero" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 45 - integers.json: "int32 range checks" - "upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 46 - integers.json: "int32 range checks" - "beyond upper boundary" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2147483647", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 2147483647", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 47 - integers.json: "int64 range checks" - "beyond lower boundary" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than -9223372036854775808", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is less than -9223372036854775808", 77s # "instanceLocation": "", 77s # "keywordLocation": "/minimum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 48 - integers.json: "int64 range checks" - "lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 49 - integers.json: "int64 range checks" - "zero" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 50 - integers.json: "int64 range checks" - "upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 51 - integers.json: "int64 range checks" - "beyond upper boundary" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 9223372036854775807", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value is greater than 9223372036854775807", 77s # "instanceLocation": "", 77s # "keywordLocation": "/maximum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 52 - integers.json: "equality checks" - "beyond int64 lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 53 - integers.json: "equality checks" - "int64 lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 54 - integers.json: "equality checks" - "beyond int32 lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 55 - integers.json: "equality checks" - "int32 lower boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 56 - integers.json: "equality checks" - "zero" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 57 - integers.json: "equality checks" - "one" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "value does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/enum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "value does not match", 77s # "instanceLocation": "", 77s # "keywordLocation": "/enum" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s ok 58 - integers.json: "equality checks" - "int32 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 59 - integers.json: "equality checks" - "beyond int32 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 60 - integers.json: "equality checks" - "int64 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 61 - integers.json: "equality checks" - "beyond int64 upper boundary" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s # 77s ok 62 - type.json: "number" - "an integer is a number" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 63 - type.json: "number" - "a float with zero fractional part is a number" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 64 - type.json: "integers" - "an integer is an integer" { 77s # result: { 77s # "valid": true 77s # } 77s # short-circuited result: { 77s # "valid": true 77s # } 77s ok 1 - test passes: data is valid: true 77s 1..1 77s } 77s ok 65 - type.json: "integers" - "a float with zero fractional part is not an integer" { 77s # result: { 77s # "errors": [ 77s # { 77s # "error": "got number, not integer", 77s # "instanceLocation": "", 77s # "keywordLocation": "/type" 77s # } 77s # ], 77s # "valid": false 77s # } 77s # short-circuited result: { 77s # "errors": [ 77s # { 77s # "error": "got number, not integer", 77s # "instanceLocation": "", 77s # "keywordLocation": "/type" 77s # } 77s # ], 77s # "valid": false 77s # } 77s ok 1 - test passes: data is valid: false 77s 1..1 77s } 77s # 77s # generated with: Test::JSON::Schema::Acceptance 1.029 77s # specification version: draft4 77s # using custom test directory: t/additional-tests-draft4 77s # optional tests included: yes 77s # 77s # filename pass todo-fail fail 77s # --------------------------------------------------------------- 77s # format-date-time.json 4 0 0 77s # format-ipv4.json 4 0 0 77s # format-ipv6.json 17 0 0 77s # id.json 3 0 0 77s # integers.json 33 0 0 77s # type.json 4 0 0 77s # --------------------------------------------------------------- 77s # TOTAL 65 0 0 77s # 77s # Congratulations, all non-optional tests are passing! 77s # 77s ok 66 - no leaks in the main evaluator object 77s ok 67 - no leaks in the short-circuiting evaluator object 77s 1..67 77s ok 79s t/additional-tests-draft7.t ............. 79s # Seeded srand with seed '20251102' from local date. 79s # 79s # AUTHOR_TESTING: 79s # AUTOMATED_TESTING: 1 79s # EXTENDED_TESTING: 79s # NO_TODO: 79s # TEST_DIR: 79s # NO_SHORT_CIRCUIT: 79s # 79s # Using JSON decoder: Cpanel::JSON::XS 4.39 79s # 79s # running tests in /tmp/autopkgtest.bokkcv/autopkgtest_tmp/smokeLRh8t9/t/additional-tests-draft7 against draft7... 79s # 79s ok 1 - badRef.json: "good references in schemas" - "this data is never used" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 2 - badRef.json: "bad $ref in schema: not a valid anchor fragment" - "this data is never used" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "$ref value is not a valid URI-reference", 79s # "instanceLocation": "", 79s # "keywordLocation": "/then/$ref" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "$ref value is not a valid URI-reference", 79s # "instanceLocation": "", 79s # "keywordLocation": "/then/$ref" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 3 - badRef.json: "bad $ref in schema: not a valid json pointer fragment" - "this data is never used" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "$ref value is not a valid URI-reference", 79s # "instanceLocation": "", 79s # "keywordLocation": "/then/$ref" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "$ref value is not a valid URI-reference", 79s # "instanceLocation": "", 79s # "keywordLocation": "/then/$ref" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s # 79s ok 4 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match the type checks" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 5 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match none of the options" { 79s # result: { 79s # "errors": [ 79s # { 79s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 79s # "error": "got string, not integer", 79s # "instanceLocation": "", 79s # "keywordLocation": "/anyOf/0/type" 79s # }, 79s # { 79s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 79s # "error": "got string, not integer", 79s # "instanceLocation": "", 79s # "keywordLocation": "/anyOf/1/type" 79s # }, 79s # { 79s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 79s # "error": "value does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/anyOf/2/const" 79s # }, 79s # { 79s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 79s # "error": "value does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/anyOf/3/enum" 79s # }, 79s # { 79s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 79s # "error": "no subschemas are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/anyOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 79s # "error": "got string, not integer", 79s # "instanceLocation": "", 79s # "keywordLocation": "/anyOf/0/type" 79s # }, 79s # { 79s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 79s # "error": "got string, not integer", 79s # "instanceLocation": "", 79s # "keywordLocation": "/anyOf/1/type" 79s # }, 79s # { 79s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 79s # "error": "value does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/anyOf/2/const" 79s # }, 79s # { 79s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 79s # "error": "value does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/anyOf/3/enum" 79s # }, 79s # { 79s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 79s # "error": "no subschemas are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/anyOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s # 79s ok 6 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 7 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 8 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid date-time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid date-time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 9 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid date-time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid date-time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s # 79s ok 10 - format-date.json: "non-ascii digits should be rejected" - "BENGALI DIGIT TWO is not valid in dates" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid date string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid date string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s # 79s ok 11 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid ipv4 string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid ipv4 string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 12 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid ipv4 string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid ipv4 string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 13 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 14 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid ipv4 string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid ipv4 string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s # 79s ok 15 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with empty json-pointer" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 16 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with one-char json-pointer" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 17 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with longer json-pointer" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 18 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer \#" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 19 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "\#\# is not a valid json-pointer" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid relative-json-pointer string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid relative-json-pointer string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 20 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus json-pointer" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid relative-json-pointer string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid relative-json-pointer string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 21 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus octothorpe" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid relative-json-pointer string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid relative-json-pointer string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s # 79s ok 22 - format-time.json: "validation of time strings" - "valid leap second, Zulu" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 23 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 24 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 25 - format-time.json: "validation of time strings" - "valid leap second, positive time-offset" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 26 - format-time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 27 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 28 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 29 - format-time.json: "validation of time strings" - "valid leap second, negative time-offset" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 30 - format-time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 31 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 32 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 33 - format-time.json: "validation of time strings" - "no time offset" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 34 - format-time.json: "validation of time strings" - "non-ascii digits should be rejected" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "not a valid time string", 79s # "instanceLocation": "", 79s # "keywordLocation": "/format" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s # 79s ok 35 - id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 36 - id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 79s # result: { 79s # "errors": [ 79s # { 79s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 79s # "error": "value does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/else/$ref/const" 79s # }, 79s # { 79s # "error": "subschema is not valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/else" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 79s # "error": "value does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/else/$ref/const" 79s # }, 79s # { 79s # "error": "subschema is not valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/else" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 37 - id.json: "non-schema object containing an anchor property" - "skip traversing definition for a valid result" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 38 - id.json: "non-schema object containing an anchor property" - "const at const_not_anchor does not match" { 79s # result: { 79s # "errors": [ 79s # { 79s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 79s # "error": "value does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/else/$ref/const" 79s # }, 79s # { 79s # "error": "subschema is not valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/else" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 79s # "error": "value does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/else/$ref/const" 79s # }, 79s # { 79s # "error": "subschema is not valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/else" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 39 - id.json: "'' not permitted as $id" - "schema would pass without $id" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "$id cannot be empty", 79s # "instanceLocation": "", 79s # "keywordLocation": "/$id" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "$id cannot be empty", 79s # "instanceLocation": "", 79s # "keywordLocation": "/$id" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 40 - id.json: "'' not permitted as $id" - "schema would fail even without $id" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "$id cannot be empty", 79s # "instanceLocation": "", 79s # "keywordLocation": "/$id" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "$id cannot be empty", 79s # "instanceLocation": "", 79s # "keywordLocation": "/$id" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 41 - id.json: "'\#' not permitted as $id" - "schema would pass without $id" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "$id cannot be empty", 79s # "instanceLocation": "", 79s # "keywordLocation": "/$id" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "$id cannot be empty", 79s # "instanceLocation": "", 79s # "keywordLocation": "/$id" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 42 - id.json: "'\#' not permitted as $id" - "schema would fail even without $id" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "$id cannot be empty", 79s # "instanceLocation": "", 79s # "keywordLocation": "/$id" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "$id cannot be empty", 79s # "instanceLocation": "", 79s # "keywordLocation": "/$id" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 43 - id.json: "bad anchor syntax" - "draft7 $id passes through to $anchor" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "$id value is not a valid URI-reference", 79s # "instanceLocation": "", 79s # "keywordLocation": "/$id" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "$id value is not a valid URI-reference", 79s # "instanceLocation": "", 79s # "keywordLocation": "/$id" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s # 79s ok 44 - integers.json: "type checks" - "beyond int64 lower boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 45 - integers.json: "type checks" - "int64 lower boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 46 - integers.json: "type checks" - "beyond int32 lower boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 47 - integers.json: "type checks" - "int32 lower boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 48 - integers.json: "type checks" - "zero" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 49 - integers.json: "type checks" - "int32 upper boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 50 - integers.json: "type checks" - "beyond int32 upper boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 51 - integers.json: "type checks" - "upper int64 boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 52 - integers.json: "type checks" - "beyond int64 upper boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 53 - integers.json: "type checks" - "uint64 upper boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 54 - integers.json: "type checks" - "beyond uint64 upper boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 55 - integers.json: "int32 range checks" - "beyond lower boundary" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than -2147483648", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than -2147483648", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 56 - integers.json: "int32 range checks" - "lower boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 57 - integers.json: "int32 range checks" - "zero" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 58 - integers.json: "int32 range checks" - "upper boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 59 - integers.json: "int32 range checks" - "beyond upper boundary" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2147483647", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2147483647", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 60 - integers.json: "int64 range checks" - "beyond lower boundary" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than -9223372036854775808", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than -9223372036854775808", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 61 - integers.json: "int64 range checks" - "lower boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 62 - integers.json: "int64 range checks" - "zero" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 63 - integers.json: "int64 range checks" - "upper boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 64 - integers.json: "int64 range checks" - "beyond upper boundary" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 9223372036854775807", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 9223372036854775807", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 65 - integers.json: "equality checks" - "beyond int64 lower boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 66 - integers.json: "equality checks" - "int64 lower boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 67 - integers.json: "equality checks" - "beyond int32 lower boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 68 - integers.json: "equality checks" - "int32 lower boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 69 - integers.json: "equality checks" - "zero" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 70 - integers.json: "equality checks" - "one" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/enum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/enum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 71 - integers.json: "equality checks" - "int32 upper boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 72 - integers.json: "equality checks" - "beyond int32 upper boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 73 - integers.json: "equality checks" - "int64 upper boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 74 - integers.json: "equality checks" - "beyond int64 upper boundary" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s # 79s ok 75 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 76 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 77 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 78 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 79 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 80 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 81 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 82 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 83 - keyword-independence.json: "contains + maximum" - "array, contains invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 84 - keyword-independence.json: "contains + maximum" - "array, contains valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 85 - keyword-independence.json: "contains + maximum" - "number, maximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 86 - keyword-independence.json: "contains + maximum" - "number, maximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 87 - keyword-independence.json: "contains + minimum" - "array, contains invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 88 - keyword-independence.json: "contains + minimum" - "array, contains valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 89 - keyword-independence.json: "contains + minimum" - "number, minimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 90 - keyword-independence.json: "contains + minimum" - "number, minimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 91 - keyword-independence.json: "contains + multipleOf" - "array, contains invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 92 - keyword-independence.json: "contains + multipleOf" - "array, contains valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 93 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 94 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 95 - keyword-independence.json: "exclusiveMaximum + items" - "array, items invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 96 - keyword-independence.json: "exclusiveMaximum + items" - "array, items valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 97 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 98 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 99 - keyword-independence.json: "exclusiveMinimum + items" - "array, items invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 100 - keyword-independence.json: "exclusiveMinimum + items" - "array, items valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 101 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 102 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 103 - keyword-independence.json: "items + maximum" - "array, items invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 104 - keyword-independence.json: "items + maximum" - "array, items valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 105 - keyword-independence.json: "items + maximum" - "number, maximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 106 - keyword-independence.json: "items + maximum" - "number, maximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 107 - keyword-independence.json: "items + minimum" - "array, items invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 108 - keyword-independence.json: "items + minimum" - "array, items valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 109 - keyword-independence.json: "items + minimum" - "number, minimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 110 - keyword-independence.json: "items + minimum" - "number, minimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 111 - keyword-independence.json: "items + multipleOf" - "array, items invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 112 - keyword-independence.json: "items + multipleOf" - "array, items valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 113 - keyword-independence.json: "items + multipleOf" - "number, multipleOf invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 114 - keyword-independence.json: "items + multipleOf" - "number, multipleOf valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 115 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 116 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 117 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 118 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 119 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 120 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 121 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 122 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 123 - keyword-independence.json: "maxItems + maximum" - "array, maxItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 124 - keyword-independence.json: "maxItems + maximum" - "array, maxItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 125 - keyword-independence.json: "maxItems + maximum" - "number, maximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 126 - keyword-independence.json: "maxItems + maximum" - "number, maximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 127 - keyword-independence.json: "maxItems + minimum" - "array, maxItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 128 - keyword-independence.json: "maxItems + minimum" - "array, maxItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 129 - keyword-independence.json: "maxItems + minimum" - "number, minimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 130 - keyword-independence.json: "maxItems + minimum" - "number, minimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 131 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 132 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 133 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 134 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 135 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 136 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 137 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 138 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 139 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 140 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 141 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 142 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 143 - keyword-independence.json: "maximum + minItems" - "array, minItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 144 - keyword-independence.json: "maximum + minItems" - "array, minItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 145 - keyword-independence.json: "maximum + minItems" - "number, maximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 146 - keyword-independence.json: "maximum + minItems" - "number, maximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 147 - keyword-independence.json: "minItems + minimum" - "array, minItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 148 - keyword-independence.json: "minItems + minimum" - "array, minItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 149 - keyword-independence.json: "minItems + minimum" - "number, minimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 150 - keyword-independence.json: "minItems + minimum" - "number, minimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 151 - keyword-independence.json: "minItems + multipleOf" - "array, minItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 152 - keyword-independence.json: "minItems + multipleOf" - "array, minItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 153 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 154 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 155 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 156 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 157 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 158 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 159 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 160 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 161 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 162 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 163 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 164 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 165 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 166 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 167 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 168 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 169 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 170 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 171 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 172 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 173 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 174 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 175 - keyword-independence.json: "additionalProperties + contains" - "array, contains invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 176 - keyword-independence.json: "additionalProperties + contains" - "array, contains valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 177 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 178 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 179 - keyword-independence.json: "contains + dependencies" - "array, contains invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 180 - keyword-independence.json: "contains + dependencies" - "array, contains valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 181 - keyword-independence.json: "contains + dependencies" - "object, dependencies invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 182 - keyword-independence.json: "contains + dependencies" - "object, dependencies valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 183 - keyword-independence.json: "contains + maxProperties" - "array, contains invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 184 - keyword-independence.json: "contains + maxProperties" - "array, contains valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 185 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 186 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 187 - keyword-independence.json: "contains + minProperties" - "array, contains invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 188 - keyword-independence.json: "contains + minProperties" - "array, contains valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 189 - keyword-independence.json: "contains + minProperties" - "object, minProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 190 - keyword-independence.json: "contains + minProperties" - "object, minProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 191 - keyword-independence.json: "contains + patternProperties" - "array, contains invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 192 - keyword-independence.json: "contains + patternProperties" - "array, contains valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 193 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 194 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 195 - keyword-independence.json: "contains + properties" - "array, contains invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 196 - keyword-independence.json: "contains + properties" - "array, contains valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 197 - keyword-independence.json: "contains + properties" - "object, properties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 198 - keyword-independence.json: "contains + properties" - "object, properties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 199 - keyword-independence.json: "contains + propertyNames" - "array, contains invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 200 - keyword-independence.json: "contains + propertyNames" - "array, contains valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 201 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 202 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 203 - keyword-independence.json: "contains + required" - "array, contains invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 204 - keyword-independence.json: "contains + required" - "array, contains valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 205 - keyword-independence.json: "contains + required" - "object, required invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 206 - keyword-independence.json: "contains + required" - "object, required valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 207 - keyword-independence.json: "additionalProperties + items" - "array, items invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 208 - keyword-independence.json: "additionalProperties + items" - "array, items valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 209 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 210 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 211 - keyword-independence.json: "dependencies + items" - "array, items invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 212 - keyword-independence.json: "dependencies + items" - "array, items valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 213 - keyword-independence.json: "dependencies + items" - "object, dependencies invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 214 - keyword-independence.json: "dependencies + items" - "object, dependencies valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 215 - keyword-independence.json: "items + maxProperties" - "array, items invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 216 - keyword-independence.json: "items + maxProperties" - "array, items valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 217 - keyword-independence.json: "items + maxProperties" - "object, maxProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 218 - keyword-independence.json: "items + maxProperties" - "object, maxProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 219 - keyword-independence.json: "items + minProperties" - "array, items invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 220 - keyword-independence.json: "items + minProperties" - "array, items valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 221 - keyword-independence.json: "items + minProperties" - "object, minProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 222 - keyword-independence.json: "items + minProperties" - "object, minProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 223 - keyword-independence.json: "items + patternProperties" - "array, items invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 224 - keyword-independence.json: "items + patternProperties" - "array, items valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 225 - keyword-independence.json: "items + patternProperties" - "object, patternProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 226 - keyword-independence.json: "items + patternProperties" - "object, patternProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 227 - keyword-independence.json: "items + properties" - "array, items invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 228 - keyword-independence.json: "items + properties" - "array, items valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 229 - keyword-independence.json: "items + properties" - "object, properties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 230 - keyword-independence.json: "items + properties" - "object, properties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 231 - keyword-independence.json: "items + propertyNames" - "array, items invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 232 - keyword-independence.json: "items + propertyNames" - "array, items valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 233 - keyword-independence.json: "items + propertyNames" - "object, propertyNames invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 234 - keyword-independence.json: "items + propertyNames" - "object, propertyNames valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 235 - keyword-independence.json: "items + required" - "array, items invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 236 - keyword-independence.json: "items + required" - "array, items valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 237 - keyword-independence.json: "items + required" - "object, required invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 238 - keyword-independence.json: "items + required" - "object, required valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 239 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 240 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 241 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 242 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 243 - keyword-independence.json: "dependencies + maxItems" - "array, maxItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 244 - keyword-independence.json: "dependencies + maxItems" - "array, maxItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 245 - keyword-independence.json: "dependencies + maxItems" - "object, dependencies invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 246 - keyword-independence.json: "dependencies + maxItems" - "object, dependencies valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 247 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 248 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 249 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 250 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 251 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 252 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 253 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 254 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 255 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 256 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 257 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 258 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 259 - keyword-independence.json: "maxItems + properties" - "array, maxItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 260 - keyword-independence.json: "maxItems + properties" - "array, maxItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 261 - keyword-independence.json: "maxItems + properties" - "object, properties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 262 - keyword-independence.json: "maxItems + properties" - "object, properties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 263 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 264 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 265 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 266 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 267 - keyword-independence.json: "maxItems + required" - "array, maxItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 268 - keyword-independence.json: "maxItems + required" - "array, maxItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 269 - keyword-independence.json: "maxItems + required" - "object, required invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 270 - keyword-independence.json: "maxItems + required" - "object, required valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 271 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 272 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 273 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 274 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 275 - keyword-independence.json: "dependencies + minItems" - "array, minItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 276 - keyword-independence.json: "dependencies + minItems" - "array, minItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 277 - keyword-independence.json: "dependencies + minItems" - "object, dependencies invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 278 - keyword-independence.json: "dependencies + minItems" - "object, dependencies valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 279 - keyword-independence.json: "maxProperties + minItems" - "array, minItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 280 - keyword-independence.json: "maxProperties + minItems" - "array, minItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 281 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 282 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 283 - keyword-independence.json: "minItems + minProperties" - "array, minItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 284 - keyword-independence.json: "minItems + minProperties" - "array, minItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 285 - keyword-independence.json: "minItems + minProperties" - "object, minProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 286 - keyword-independence.json: "minItems + minProperties" - "object, minProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 287 - keyword-independence.json: "minItems + patternProperties" - "array, minItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 288 - keyword-independence.json: "minItems + patternProperties" - "array, minItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 289 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 290 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 291 - keyword-independence.json: "minItems + properties" - "array, minItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 292 - keyword-independence.json: "minItems + properties" - "array, minItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 293 - keyword-independence.json: "minItems + properties" - "object, properties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 294 - keyword-independence.json: "minItems + properties" - "object, properties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 295 - keyword-independence.json: "minItems + propertyNames" - "array, minItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 296 - keyword-independence.json: "minItems + propertyNames" - "array, minItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 297 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 298 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 299 - keyword-independence.json: "minItems + required" - "array, minItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 300 - keyword-independence.json: "minItems + required" - "array, minItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 301 - keyword-independence.json: "minItems + required" - "object, required invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 302 - keyword-independence.json: "minItems + required" - "object, required valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 303 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 304 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 305 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 306 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 307 - keyword-independence.json: "dependencies + uniqueItems" - "array, uniqueItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 308 - keyword-independence.json: "dependencies + uniqueItems" - "array, uniqueItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 309 - keyword-independence.json: "dependencies + uniqueItems" - "object, dependencies invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 310 - keyword-independence.json: "dependencies + uniqueItems" - "object, dependencies valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 311 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 312 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 313 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 314 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 315 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 316 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 317 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 318 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 319 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 320 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 321 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 322 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 323 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 324 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 325 - keyword-independence.json: "properties + uniqueItems" - "object, properties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 326 - keyword-independence.json: "properties + uniqueItems" - "object, properties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 327 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 328 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 329 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 330 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 331 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 332 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 333 - keyword-independence.json: "required + uniqueItems" - "object, required invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 334 - keyword-independence.json: "required + uniqueItems" - "object, required valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 335 - keyword-independence.json: "contains + maxLength" - "array, contains invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 336 - keyword-independence.json: "contains + maxLength" - "array, contains valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 337 - keyword-independence.json: "contains + maxLength" - "string, maxLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 338 - keyword-independence.json: "contains + maxLength" - "string, maxLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 339 - keyword-independence.json: "contains + minLength" - "array, contains invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 340 - keyword-independence.json: "contains + minLength" - "array, contains valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 341 - keyword-independence.json: "contains + minLength" - "string, minLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 342 - keyword-independence.json: "contains + minLength" - "string, minLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 343 - keyword-independence.json: "contains + pattern" - "array, contains invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is not valid against any item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/contains" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 344 - keyword-independence.json: "contains + pattern" - "array, contains valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 345 - keyword-independence.json: "contains + pattern" - "string, pattern invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 346 - keyword-independence.json: "contains + pattern" - "string, pattern valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 347 - keyword-independence.json: "items + maxLength" - "array, items invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 348 - keyword-independence.json: "items + maxLength" - "array, items valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 349 - keyword-independence.json: "items + maxLength" - "string, maxLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 350 - keyword-independence.json: "items + maxLength" - "string, maxLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 351 - keyword-independence.json: "items + minLength" - "array, items invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 352 - keyword-independence.json: "items + minLength" - "array, items valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 353 - keyword-independence.json: "items + minLength" - "string, minLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 354 - keyword-independence.json: "items + minLength" - "string, minLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 355 - keyword-independence.json: "items + pattern" - "array, items invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "item not permitted", 79s # "instanceLocation": "/0", 79s # "keywordLocation": "/items/0" 79s # }, 79s # { 79s # "error": "not all items are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/items" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 356 - keyword-independence.json: "items + pattern" - "array, items valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 357 - keyword-independence.json: "items + pattern" - "string, pattern invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 358 - keyword-independence.json: "items + pattern" - "string, pattern valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 359 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 360 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 361 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 362 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 363 - keyword-independence.json: "maxItems + minLength" - "array, maxItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 364 - keyword-independence.json: "maxItems + minLength" - "array, maxItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 365 - keyword-independence.json: "maxItems + minLength" - "string, minLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 366 - keyword-independence.json: "maxItems + minLength" - "string, minLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 367 - keyword-independence.json: "maxItems + pattern" - "array, maxItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has more than 1 item", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 368 - keyword-independence.json: "maxItems + pattern" - "array, maxItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 369 - keyword-independence.json: "maxItems + pattern" - "string, pattern invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 370 - keyword-independence.json: "maxItems + pattern" - "string, pattern valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 371 - keyword-independence.json: "maxLength + minItems" - "array, minItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 372 - keyword-independence.json: "maxLength + minItems" - "array, minItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 373 - keyword-independence.json: "maxLength + minItems" - "string, maxLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 374 - keyword-independence.json: "maxLength + minItems" - "string, maxLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 375 - keyword-independence.json: "minItems + minLength" - "array, minItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 376 - keyword-independence.json: "minItems + minLength" - "array, minItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 377 - keyword-independence.json: "minItems + minLength" - "string, minLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 378 - keyword-independence.json: "minItems + minLength" - "string, minLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 379 - keyword-independence.json: "minItems + pattern" - "array, minItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "array has fewer than 2 items", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 380 - keyword-independence.json: "minItems + pattern" - "array, minItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 381 - keyword-independence.json: "minItems + pattern" - "string, pattern invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 382 - keyword-independence.json: "minItems + pattern" - "string, pattern valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 383 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 384 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 385 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 386 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 387 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 388 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 389 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 390 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 391 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "items at indices 0 and 1 are not unique", 79s # "instanceLocation": "", 79s # "keywordLocation": "/uniqueItems" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 392 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 393 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 394 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 395 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 396 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 397 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 398 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 399 - keyword-independence.json: "dependencies + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 400 - keyword-independence.json: "dependencies + exclusiveMaximum" - "number, exclusiveMaximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 401 - keyword-independence.json: "dependencies + exclusiveMaximum" - "object, dependencies invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 402 - keyword-independence.json: "dependencies + exclusiveMaximum" - "object, dependencies valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 403 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 404 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 405 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 406 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 407 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 408 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 409 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 410 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 411 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 412 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 413 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 414 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 415 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 416 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 417 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 418 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 419 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 420 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 421 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 422 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 423 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 424 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 425 - keyword-independence.json: "exclusiveMaximum + required" - "object, required invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 426 - keyword-independence.json: "exclusiveMaximum + required" - "object, required valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 427 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 428 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 429 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 430 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 431 - keyword-independence.json: "dependencies + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 432 - keyword-independence.json: "dependencies + exclusiveMinimum" - "number, exclusiveMinimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 433 - keyword-independence.json: "dependencies + exclusiveMinimum" - "object, dependencies invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 434 - keyword-independence.json: "dependencies + exclusiveMinimum" - "object, dependencies valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 435 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 436 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 437 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 438 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 439 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 440 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 441 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 442 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 443 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 444 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 445 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 446 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 447 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 448 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 449 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 450 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 451 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 452 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 453 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 454 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 455 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 456 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 457 - keyword-independence.json: "exclusiveMinimum + required" - "object, required invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 458 - keyword-independence.json: "exclusiveMinimum + required" - "object, required valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 459 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 460 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 461 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 462 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 463 - keyword-independence.json: "dependencies + maximum" - "number, maximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 464 - keyword-independence.json: "dependencies + maximum" - "number, maximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 465 - keyword-independence.json: "dependencies + maximum" - "object, dependencies invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 466 - keyword-independence.json: "dependencies + maximum" - "object, dependencies valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 467 - keyword-independence.json: "maxProperties + maximum" - "number, maximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 468 - keyword-independence.json: "maxProperties + maximum" - "number, maximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 469 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 470 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 471 - keyword-independence.json: "maximum + minProperties" - "number, maximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 472 - keyword-independence.json: "maximum + minProperties" - "number, maximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 473 - keyword-independence.json: "maximum + minProperties" - "object, minProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 474 - keyword-independence.json: "maximum + minProperties" - "object, minProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 475 - keyword-independence.json: "maximum + patternProperties" - "number, maximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 476 - keyword-independence.json: "maximum + patternProperties" - "number, maximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 477 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 478 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 479 - keyword-independence.json: "maximum + properties" - "number, maximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 480 - keyword-independence.json: "maximum + properties" - "number, maximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 481 - keyword-independence.json: "maximum + properties" - "object, properties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 482 - keyword-independence.json: "maximum + properties" - "object, properties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 483 - keyword-independence.json: "maximum + propertyNames" - "number, maximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 484 - keyword-independence.json: "maximum + propertyNames" - "number, maximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 485 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 486 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 487 - keyword-independence.json: "maximum + required" - "number, maximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 488 - keyword-independence.json: "maximum + required" - "number, maximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 489 - keyword-independence.json: "maximum + required" - "object, required invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 490 - keyword-independence.json: "maximum + required" - "object, required valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 491 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 492 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 493 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 494 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 495 - keyword-independence.json: "dependencies + minimum" - "number, minimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 496 - keyword-independence.json: "dependencies + minimum" - "number, minimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 497 - keyword-independence.json: "dependencies + minimum" - "object, dependencies invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 498 - keyword-independence.json: "dependencies + minimum" - "object, dependencies valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 499 - keyword-independence.json: "maxProperties + minimum" - "number, minimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 500 - keyword-independence.json: "maxProperties + minimum" - "number, minimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 501 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 502 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 503 - keyword-independence.json: "minProperties + minimum" - "number, minimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 504 - keyword-independence.json: "minProperties + minimum" - "number, minimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 505 - keyword-independence.json: "minProperties + minimum" - "object, minProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 506 - keyword-independence.json: "minProperties + minimum" - "object, minProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 507 - keyword-independence.json: "minimum + patternProperties" - "number, minimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 508 - keyword-independence.json: "minimum + patternProperties" - "number, minimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 509 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 510 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 511 - keyword-independence.json: "minimum + properties" - "number, minimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 512 - keyword-independence.json: "minimum + properties" - "number, minimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 513 - keyword-independence.json: "minimum + properties" - "object, properties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 514 - keyword-independence.json: "minimum + properties" - "object, properties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 515 - keyword-independence.json: "minimum + propertyNames" - "number, minimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 516 - keyword-independence.json: "minimum + propertyNames" - "number, minimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 517 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 518 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 519 - keyword-independence.json: "minimum + required" - "number, minimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 520 - keyword-independence.json: "minimum + required" - "number, minimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 521 - keyword-independence.json: "minimum + required" - "object, required invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 522 - keyword-independence.json: "minimum + required" - "object, required valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 523 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 524 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 525 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 526 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 527 - keyword-independence.json: "dependencies + multipleOf" - "number, multipleOf invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 528 - keyword-independence.json: "dependencies + multipleOf" - "number, multipleOf valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 529 - keyword-independence.json: "dependencies + multipleOf" - "object, dependencies invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 530 - keyword-independence.json: "dependencies + multipleOf" - "object, dependencies valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 531 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 532 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 533 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has more than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 534 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 535 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 536 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 537 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object has fewer than 1 property", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 538 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 539 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 540 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 541 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/no", 79s # "keywordLocation": "/patternProperties/no" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/patternProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 542 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 543 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 544 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 545 - keyword-independence.json: "multipleOf + properties" - "object, properties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/properties/x" 79s # }, 79s # { 79s # "error": "not all properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/properties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 546 - keyword-independence.json: "multipleOf + properties" - "object, properties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 547 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 548 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 549 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/propertyNames" 79s # }, 79s # { 79s # "error": "not all property names are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/propertyNames" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 550 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 551 - keyword-independence.json: "multipleOf + required" - "number, multipleOf invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 552 - keyword-independence.json: "multipleOf + required" - "number, multipleOf valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 553 - keyword-independence.json: "multipleOf + required" - "object, required invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "object is missing property: x", 79s # "instanceLocation": "", 79s # "keywordLocation": "/required" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 554 - keyword-independence.json: "multipleOf + required" - "object, required valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 555 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 556 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 557 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 558 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 559 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 560 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 561 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 562 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 563 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMaximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 564 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 565 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 566 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 567 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 568 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 569 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 570 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 571 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 572 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 573 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 574 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 575 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than or equal to 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/exclusiveMinimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 576 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 577 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 578 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 579 - keyword-independence.json: "maxLength + maximum" - "number, maximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 580 - keyword-independence.json: "maxLength + maximum" - "number, maximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 581 - keyword-independence.json: "maxLength + maximum" - "string, maxLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 582 - keyword-independence.json: "maxLength + maximum" - "string, maxLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 583 - keyword-independence.json: "maximum + minLength" - "number, maximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 584 - keyword-independence.json: "maximum + minLength" - "number, maximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 585 - keyword-independence.json: "maximum + minLength" - "string, minLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 586 - keyword-independence.json: "maximum + minLength" - "string, minLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 587 - keyword-independence.json: "maximum + pattern" - "number, maximum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maximum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 588 - keyword-independence.json: "maximum + pattern" - "number, maximum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 589 - keyword-independence.json: "maximum + pattern" - "string, pattern invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 590 - keyword-independence.json: "maximum + pattern" - "string, pattern valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 591 - keyword-independence.json: "maxLength + minimum" - "number, minimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 592 - keyword-independence.json: "maxLength + minimum" - "number, minimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 593 - keyword-independence.json: "maxLength + minimum" - "string, maxLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 594 - keyword-independence.json: "maxLength + minimum" - "string, maxLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 595 - keyword-independence.json: "minLength + minimum" - "number, minimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 596 - keyword-independence.json: "minLength + minimum" - "number, minimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 597 - keyword-independence.json: "minLength + minimum" - "string, minLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 598 - keyword-independence.json: "minLength + minimum" - "string, minLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 599 - keyword-independence.json: "minimum + pattern" - "number, minimum invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minimum" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 600 - keyword-independence.json: "minimum + pattern" - "number, minimum valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 601 - keyword-independence.json: "minimum + pattern" - "string, pattern invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 602 - keyword-independence.json: "minimum + pattern" - "string, pattern valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 603 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 604 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 605 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 606 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 607 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 608 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 609 - keyword-independence.json: "minLength + multipleOf" - "string, minLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 610 - keyword-independence.json: "minLength + multipleOf" - "string, minLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 611 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "value is not a multiple of 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/multipleOf" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 612 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 613 - keyword-independence.json: "multipleOf + pattern" - "string, pattern invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 614 - keyword-independence.json: "multipleOf + pattern" - "string, pattern valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 615 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 616 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 617 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 618 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 619 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 620 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 621 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is less than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/minLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 622 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 623 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "additional property not permitted", 79s # "instanceLocation": "/x", 79s # "keywordLocation": "/additionalProperties" 79s # }, 79s # { 79s # "error": "not all additional properties are valid", 79s # "instanceLocation": "", 79s # "keywordLocation": "/additionalProperties" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 624 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 625 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "pattern does not match", 79s # "instanceLocation": "", 79s # "keywordLocation": "/pattern" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 626 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 627 - keyword-independence.json: "dependencies + maxLength" - "object, dependencies invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "subschema is false", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies/x" 79s # }, 79s # { 79s # "error": "not all dependencies are satisfied", 79s # "instanceLocation": "", 79s # "keywordLocation": "/dependencies" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 628 - keyword-independence.json: "dependencies + maxLength" - "object, dependencies valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 629 - keyword-independence.json: "dependencies + maxLength" - "string, maxLength invalid" { 79s # result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s # short-circuited result: { 79s # "errors": [ 79s # { 79s # "error": "length is greater than 2", 79s # "instanceLocation": "", 79s # "keywordLocation": "/maxLength" 79s # } 79s # ], 79s # "valid": false 79s # } 79s ok 1 - test passes: data is valid: false 79s 1..1 79s } 79s ok 630 - keyword-independence.json: "dependencies + maxLength" - "string, maxLength valid" { 79s # result: { 79s # "valid": true 79s # } 79s # short-circuited result: { 79s # "valid": true 79s # } 79s ok 1 - test passes: data is valid: true 79s 1..1 79s } 79s ok 631 - keyword-independence.json: "dependencies + minLength" - "object, dependencies invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "subschema is false", 80s # "instanceLocation": "", 80s # "keywordLocation": "/dependencies/x" 80s # }, 80s # { 80s # "error": "not all dependencies are satisfied", 80s # "instanceLocation": "", 80s # "keywordLocation": "/dependencies" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "subschema is false", 80s # "instanceLocation": "", 80s # "keywordLocation": "/dependencies/x" 80s # }, 80s # { 80s # "error": "not all dependencies are satisfied", 80s # "instanceLocation": "", 80s # "keywordLocation": "/dependencies" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 632 - keyword-independence.json: "dependencies + minLength" - "object, dependencies valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 633 - keyword-independence.json: "dependencies + minLength" - "string, minLength invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "length is less than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "length is less than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 634 - keyword-independence.json: "dependencies + minLength" - "string, minLength valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 635 - keyword-independence.json: "dependencies + pattern" - "object, dependencies invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "subschema is false", 80s # "instanceLocation": "", 80s # "keywordLocation": "/dependencies/x" 80s # }, 80s # { 80s # "error": "not all dependencies are satisfied", 80s # "instanceLocation": "", 80s # "keywordLocation": "/dependencies" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "subschema is false", 80s # "instanceLocation": "", 80s # "keywordLocation": "/dependencies/x" 80s # }, 80s # { 80s # "error": "not all dependencies are satisfied", 80s # "instanceLocation": "", 80s # "keywordLocation": "/dependencies" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 636 - keyword-independence.json: "dependencies + pattern" - "object, dependencies valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 637 - keyword-independence.json: "dependencies + pattern" - "string, pattern invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "pattern does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/pattern" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "pattern does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/pattern" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 638 - keyword-independence.json: "dependencies + pattern" - "string, pattern valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 639 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "object has more than 1 property", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "object has more than 1 property", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 640 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 641 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "length is greater than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "length is greater than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 642 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 643 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "object has more than 1 property", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "object has more than 1 property", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 644 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 645 - keyword-independence.json: "maxProperties + minLength" - "string, minLength invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "length is less than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "length is less than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 646 - keyword-independence.json: "maxProperties + minLength" - "string, minLength valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 647 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "object has more than 1 property", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "object has more than 1 property", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 648 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 649 - keyword-independence.json: "maxProperties + pattern" - "string, pattern invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "pattern does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/pattern" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "pattern does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/pattern" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 650 - keyword-independence.json: "maxProperties + pattern" - "string, pattern valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 651 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "object has fewer than 1 property", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "object has fewer than 1 property", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 652 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 653 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "length is greater than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "length is greater than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 654 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 655 - keyword-independence.json: "minLength + minProperties" - "object, minProperties invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "object has fewer than 1 property", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "object has fewer than 1 property", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 656 - keyword-independence.json: "minLength + minProperties" - "object, minProperties valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 657 - keyword-independence.json: "minLength + minProperties" - "string, minLength invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "length is less than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "length is less than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 658 - keyword-independence.json: "minLength + minProperties" - "string, minLength valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 659 - keyword-independence.json: "minProperties + pattern" - "object, minProperties invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "object has fewer than 1 property", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "object has fewer than 1 property", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 660 - keyword-independence.json: "minProperties + pattern" - "object, minProperties valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 661 - keyword-independence.json: "minProperties + pattern" - "string, pattern invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "pattern does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/pattern" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "pattern does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/pattern" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 662 - keyword-independence.json: "minProperties + pattern" - "string, pattern valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 663 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "property not permitted", 80s # "instanceLocation": "/no", 80s # "keywordLocation": "/patternProperties/no" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/patternProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "property not permitted", 80s # "instanceLocation": "/no", 80s # "keywordLocation": "/patternProperties/no" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/patternProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 664 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 665 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "length is greater than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "length is greater than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 666 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 667 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "property not permitted", 80s # "instanceLocation": "/no", 80s # "keywordLocation": "/patternProperties/no" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/patternProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "property not permitted", 80s # "instanceLocation": "/no", 80s # "keywordLocation": "/patternProperties/no" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/patternProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 668 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 669 - keyword-independence.json: "minLength + patternProperties" - "string, minLength invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "length is less than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "length is less than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 670 - keyword-independence.json: "minLength + patternProperties" - "string, minLength valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 671 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "property not permitted", 80s # "instanceLocation": "/no", 80s # "keywordLocation": "/patternProperties/no" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/patternProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "property not permitted", 80s # "instanceLocation": "/no", 80s # "keywordLocation": "/patternProperties/no" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/patternProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 672 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 673 - keyword-independence.json: "pattern + patternProperties" - "string, pattern invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "pattern does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/pattern" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "pattern does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/pattern" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 674 - keyword-independence.json: "pattern + patternProperties" - "string, pattern valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 675 - keyword-independence.json: "maxLength + properties" - "object, properties invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "property not permitted", 80s # "instanceLocation": "/x", 80s # "keywordLocation": "/properties/x" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "property not permitted", 80s # "instanceLocation": "/x", 80s # "keywordLocation": "/properties/x" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 676 - keyword-independence.json: "maxLength + properties" - "object, properties valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 677 - keyword-independence.json: "maxLength + properties" - "string, maxLength invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "length is greater than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "length is greater than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 678 - keyword-independence.json: "maxLength + properties" - "string, maxLength valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 679 - keyword-independence.json: "minLength + properties" - "object, properties invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "property not permitted", 80s # "instanceLocation": "/x", 80s # "keywordLocation": "/properties/x" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "property not permitted", 80s # "instanceLocation": "/x", 80s # "keywordLocation": "/properties/x" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 680 - keyword-independence.json: "minLength + properties" - "object, properties valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 681 - keyword-independence.json: "minLength + properties" - "string, minLength invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "length is less than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "length is less than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 682 - keyword-independence.json: "minLength + properties" - "string, minLength valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 683 - keyword-independence.json: "pattern + properties" - "object, properties invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "property not permitted", 80s # "instanceLocation": "/x", 80s # "keywordLocation": "/properties/x" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "property not permitted", 80s # "instanceLocation": "/x", 80s # "keywordLocation": "/properties/x" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 684 - keyword-independence.json: "pattern + properties" - "object, properties valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 685 - keyword-independence.json: "pattern + properties" - "string, pattern invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "pattern does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/pattern" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "pattern does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/pattern" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 686 - keyword-independence.json: "pattern + properties" - "string, pattern valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 687 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "subschema is false", 80s # "instanceLocation": "/x", 80s # "keywordLocation": "/propertyNames" 80s # }, 80s # { 80s # "error": "not all property names are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/propertyNames" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "subschema is false", 80s # "instanceLocation": "/x", 80s # "keywordLocation": "/propertyNames" 80s # }, 80s # { 80s # "error": "not all property names are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/propertyNames" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 688 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 689 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "length is greater than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "length is greater than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 690 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 691 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "subschema is false", 80s # "instanceLocation": "/x", 80s # "keywordLocation": "/propertyNames" 80s # }, 80s # { 80s # "error": "not all property names are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/propertyNames" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "subschema is false", 80s # "instanceLocation": "/x", 80s # "keywordLocation": "/propertyNames" 80s # }, 80s # { 80s # "error": "not all property names are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/propertyNames" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 692 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 693 - keyword-independence.json: "minLength + propertyNames" - "string, minLength invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "length is less than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "length is less than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 694 - keyword-independence.json: "minLength + propertyNames" - "string, minLength valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 695 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "subschema is false", 80s # "instanceLocation": "/x", 80s # "keywordLocation": "/propertyNames" 80s # }, 80s # { 80s # "error": "not all property names are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/propertyNames" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "subschema is false", 80s # "instanceLocation": "/x", 80s # "keywordLocation": "/propertyNames" 80s # }, 80s # { 80s # "error": "not all property names are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/propertyNames" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 696 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 697 - keyword-independence.json: "pattern + propertyNames" - "string, pattern invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "pattern does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/pattern" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "pattern does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/pattern" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 698 - keyword-independence.json: "pattern + propertyNames" - "string, pattern valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 699 - keyword-independence.json: "maxLength + required" - "object, required invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "object is missing property: x", 80s # "instanceLocation": "", 80s # "keywordLocation": "/required" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "object is missing property: x", 80s # "instanceLocation": "", 80s # "keywordLocation": "/required" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 700 - keyword-independence.json: "maxLength + required" - "object, required valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 701 - keyword-independence.json: "maxLength + required" - "string, maxLength invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "length is greater than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "length is greater than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/maxLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 702 - keyword-independence.json: "maxLength + required" - "string, maxLength valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 703 - keyword-independence.json: "minLength + required" - "object, required invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "object is missing property: x", 80s # "instanceLocation": "", 80s # "keywordLocation": "/required" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "object is missing property: x", 80s # "instanceLocation": "", 80s # "keywordLocation": "/required" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 704 - keyword-independence.json: "minLength + required" - "object, required valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 705 - keyword-independence.json: "minLength + required" - "string, minLength invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "length is less than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "length is less than 2", 80s # "instanceLocation": "", 80s # "keywordLocation": "/minLength" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 706 - keyword-independence.json: "minLength + required" - "string, minLength valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 707 - keyword-independence.json: "pattern + required" - "object, required invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "object is missing property: x", 80s # "instanceLocation": "", 80s # "keywordLocation": "/required" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "object is missing property: x", 80s # "instanceLocation": "", 80s # "keywordLocation": "/required" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 708 - keyword-independence.json: "pattern + required" - "object, required valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 709 - keyword-independence.json: "pattern + required" - "string, pattern invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "pattern does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/pattern" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "pattern does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/pattern" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 710 - keyword-independence.json: "pattern + required" - "string, pattern valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s # 80s ok 711 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does not match string" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "value does not match", 80s # "instanceLocation": "/const_string", 80s # "keywordLocation": "/properties/const_string/const" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "value does not match", 80s # "instanceLocation": "/const_string", 80s # "keywordLocation": "/properties/const_string/const" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 712 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does match number" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 713 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value matches string" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 714 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value does not match number" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "value does not match", 80s # "instanceLocation": "/const_number", 80s # "keywordLocation": "/properties/const_number/const" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "value does not match", 80s # "instanceLocation": "/const_number", 80s # "keywordLocation": "/properties/const_number/const" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 715 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does not match string" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "value does not match", 80s # "instanceLocation": "/enum_string", 80s # "keywordLocation": "/properties/enum_string/enum" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "value does not match", 80s # "instanceLocation": "/enum_string", 80s # "keywordLocation": "/properties/enum_string/enum" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 716 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does match number" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 717 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value matches string" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 718 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value does not match number" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "value does not match", 80s # "instanceLocation": "/enum_number", 80s # "keywordLocation": "/properties/enum_number/enum" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "value does not match", 80s # "instanceLocation": "/enum_number", 80s # "keywordLocation": "/properties/enum_number/enum" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s # 80s ok 719 - not-an-anchor.json: "object that is not a schema containing an $anchor property" - "skip traversing definition for a valid result" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 720 - not-an-anchor.json: "object that is not a schema containing an $anchor property" - "const at const_not_anchor does not match" { 80s # result: { 80s # "errors": [ 80s # { 80s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 80s # "error": "value does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/else/$ref/const" 80s # }, 80s # { 80s # "error": "subschema is not valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/else" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 80s # "error": "value does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/else/$ref/const" 80s # }, 80s # { 80s # "error": "subschema is not valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/else" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s # 80s ok 721 - not-an-id.json: "object that is not a schema containing an $id property" - "skip traversing definition for a valid result" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 722 - not-an-id.json: "object that is not a schema containing an $id property" - "const at const_not_id does not match" { 80s # result: { 80s # "errors": [ 80s # { 80s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 80s # "error": "value does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/else/$ref/const" 80s # }, 80s # { 80s # "error": "subschema is not valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/else" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 80s # "error": "value does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/else/$ref/const" 80s # }, 80s # { 80s # "error": "subschema is not valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/else" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s # 80s ok 723 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination" - "data is valid against first definition" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 724 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination" - "data is invalid against first definition" { 80s # result: { 80s # "errors": [ 80s # { 80s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 80s # "error": "value is greater than 10", 80s # "instanceLocation": "", 80s # "keywordLocation": "/allOf/0/$ref/maximum" 80s # }, 80s # { 80s # "absoluteKeywordLocation": "/ref-and-id2/base.json#/allOf", 80s # "error": "subschema 0 is not valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/allOf" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 80s # "error": "value is greater than 10", 80s # "instanceLocation": "", 80s # "keywordLocation": "/allOf/0/$ref/maximum" 80s # }, 80s # { 80s # "absoluteKeywordLocation": "/ref-and-id2/base.json#/allOf", 80s # "error": "subschema 0 is not valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/allOf" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s # 80s ok 725 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 726 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 80s # result: { 80s # "errors": [ 80s # { 80s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 80s # "error": "value is greater than 10", 80s # "instanceLocation": "", 80s # "keywordLocation": "/allOf/0/$ref/maximum" 80s # }, 80s # { 80s # "absoluteKeywordLocation": "/ref1/base.json#/allOf", 80s # "error": "subschema 0 is not valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/allOf" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 80s # "error": "value is greater than 10", 80s # "instanceLocation": "", 80s # "keywordLocation": "/allOf/0/$ref/maximum" 80s # }, 80s # { 80s # "absoluteKeywordLocation": "/ref1/base.json#/allOf", 80s # "error": "subschema 0 is not valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/allOf" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 727 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 728 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 80s # result: { 80s # "errors": [ 80s # { 80s # "absoluteKeywordLocation": "/ref2/base.json#/definitions/bigint/maximum", 80s # "error": "value is greater than 10", 80s # "instanceLocation": "", 80s # "keywordLocation": "/allOf/0/$ref/maximum" 80s # }, 80s # { 80s # "absoluteKeywordLocation": "/ref2/base.json#/allOf", 80s # "error": "subschema 0 is not valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/allOf" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "absoluteKeywordLocation": "/ref2/base.json#/definitions/bigint/maximum", 80s # "error": "value is greater than 10", 80s # "instanceLocation": "", 80s # "keywordLocation": "/allOf/0/$ref/maximum" 80s # }, 80s # { 80s # "absoluteKeywordLocation": "/ref2/base.json#/allOf", 80s # "error": "subschema 0 is not valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/allOf" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 729 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "value does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/enum" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "value does not match", 80s # "instanceLocation": "", 80s # "keywordLocation": "/enum" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 730 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 731 - ref.json: "invalid $ref: invalid anchor fragment" - "an invalid anchor fragment" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "$ref value is not a valid URI-reference", 80s # "instanceLocation": "", 80s # "keywordLocation": "/definitions/foo/$ref" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "$ref value is not a valid URI-reference", 80s # "instanceLocation": "", 80s # "keywordLocation": "/definitions/foo/$ref" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 732 - ref.json: "invalid $ref: invalid json-pointer fragment" - "an invalid json-pointer fragment" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "$ref value is not a valid URI-reference", 80s # "instanceLocation": "", 80s # "keywordLocation": "/definitions/foo/$ref" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "$ref value is not a valid URI-reference", 80s # "instanceLocation": "", 80s # "keywordLocation": "/definitions/foo/$ref" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 733 - ref.json: "base URI change - change folder in subschema with path from root" - "number is valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 734 - ref.json: "base URI change - change folder in subschema with path from root" - "string is invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 80s # "error": "got string, not integer", 80s # "instanceLocation": "/list/0", 80s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 80s # }, 80s # { 80s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 80s # "error": "subschema is not valid against all items", 80s # "instanceLocation": "/list", 80s # "keywordLocation": "/properties/list/$ref/items" 80s # }, 80s # { 80s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 80s # "error": "got string, not integer", 80s # "instanceLocation": "/list/0", 80s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 80s # }, 80s # { 80s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 80s # "error": "subschema is not valid against all items", 80s # "instanceLocation": "/list", 80s # "keywordLocation": "/properties/list/$ref/items" 80s # }, 80s # { 80s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s # 80s ok 735 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "single item is valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 736 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "second item is invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "value is not a multiple of 2", 80s # "instanceLocation": "/1", 80s # "keywordLocation": "/items/multipleOf" 80s # }, 80s # { 80s # "error": "subschema is not valid against all items", 80s # "instanceLocation": "", 80s # "keywordLocation": "/items" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "value is not a multiple of 2", 80s # "instanceLocation": "/1", 80s # "keywordLocation": "/items/multipleOf" 80s # }, 80s # { 80s # "error": "subschema is not valid against all items", 80s # "instanceLocation": "", 80s # "keywordLocation": "/items" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 737 - short-circuit.json: "items (array form) does not improperly short-circuit" - "single item is valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 738 - short-circuit.json: "items (array form) does not improperly short-circuit" - "second item is invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "value is not a multiple of 2", 80s # "instanceLocation": "/1", 80s # "keywordLocation": "/items/1/multipleOf" 80s # }, 80s # { 80s # "error": "not all items are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/items" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "value is not a multiple of 2", 80s # "instanceLocation": "/1", 80s # "keywordLocation": "/items/1/multipleOf" 80s # }, 80s # { 80s # "error": "not all items are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/items" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 739 - short-circuit.json: "additionalItems does not improperly short-circuit" - "single additional item is valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 740 - short-circuit.json: "additionalItems does not improperly short-circuit" - "second additional item is invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "value is not a multiple of 2", 80s # "instanceLocation": "/2", 80s # "keywordLocation": "/additionalItems/multipleOf" 80s # }, 80s # { 80s # "error": "subschema is not valid against all additional items", 80s # "instanceLocation": "", 80s # "keywordLocation": "/additionalItems" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "value is not a multiple of 2", 80s # "instanceLocation": "/2", 80s # "keywordLocation": "/additionalItems/multipleOf" 80s # }, 80s # { 80s # "error": "subschema is not valid against all additional items", 80s # "instanceLocation": "", 80s # "keywordLocation": "/additionalItems" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 741 - short-circuit.json: "properties does not improperly short-circuit" - "single property is valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 742 - short-circuit.json: "properties does not improperly short-circuit" - "second property is invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "value is not a multiple of 2", 80s # "instanceLocation": "/beta", 80s # "keywordLocation": "/properties/beta/multipleOf" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "value is not a multiple of 2", 80s # "instanceLocation": "/beta", 80s # "keywordLocation": "/properties/beta/multipleOf" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 743 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 744 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "property not permitted", 80s # "instanceLocation": "/beta", 80s # "keywordLocation": "/properties/beta" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "property not permitted", 80s # "instanceLocation": "/beta", 80s # "keywordLocation": "/properties/beta" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/properties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 745 - short-circuit.json: "patternProperties does not improperly short-circuit" - "single property is valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 746 - short-circuit.json: "patternProperties does not improperly short-circuit" - "second property is invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "value is not a multiple of 2", 80s # "instanceLocation": "/beta", 80s # "keywordLocation": "/patternProperties/^b/multipleOf" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/patternProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "value is not a multiple of 2", 80s # "instanceLocation": "/beta", 80s # "keywordLocation": "/patternProperties/^b/multipleOf" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/patternProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 747 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 748 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "property not permitted", 80s # "instanceLocation": "/beta", 80s # "keywordLocation": "/patternProperties/^b" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/patternProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "property not permitted", 80s # "instanceLocation": "/beta", 80s # "keywordLocation": "/patternProperties/^b" 80s # }, 80s # { 80s # "error": "not all properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/patternProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 749 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "single property is valid" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 750 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "second property is invalid" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "value is not a multiple of 2", 80s # "instanceLocation": "/beta", 80s # "keywordLocation": "/additionalProperties/multipleOf" 80s # }, 80s # { 80s # "error": "not all additional properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/additionalProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "value is not a multiple of 2", 80s # "instanceLocation": "/beta", 80s # "keywordLocation": "/additionalProperties/multipleOf" 80s # }, 80s # { 80s # "error": "not all additional properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/additionalProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s # 80s ok 751 - unknownKeyword.json: "past and future keywords are ignored" - "passing" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 752 - unknownKeyword.json: "past and future keywords are ignored" - "failing (string)" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "got string, not number", 80s # "instanceLocation": "", 80s # "keywordLocation": "/type" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "got string, not number", 80s # "instanceLocation": "", 80s # "keywordLocation": "/type" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 753 - unknownKeyword.json: "past and future keywords are ignored" - "failing (object)" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "got object, not number", 80s # "instanceLocation": "", 80s # "keywordLocation": "/type" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "got object, not number", 80s # "instanceLocation": "", 80s # "keywordLocation": "/type" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 754 - unknownKeyword.json: "past and future keywords are ignored" - "failing (array)" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "got array, not number", 80s # "instanceLocation": "", 80s # "keywordLocation": "/type" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "got array, not number", 80s # "instanceLocation": "", 80s # "keywordLocation": "/type" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 755 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "match" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 756 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive match" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 757 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "mismatch" { 80s # result: { 80s # "errors": [ 80s # { 80s # "error": "additional property not permitted", 80s # "instanceLocation": "/bar", 80s # "keywordLocation": "/additionalProperties" 80s # }, 80s # { 80s # "error": "not all additional properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/additionalProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s # short-circuited result: { 80s # "errors": [ 80s # { 80s # "error": "additional property not permitted", 80s # "instanceLocation": "/bar", 80s # "keywordLocation": "/additionalProperties" 80s # }, 80s # { 80s # "error": "not all additional properties are valid", 80s # "instanceLocation": "", 80s # "keywordLocation": "/additionalProperties" 80s # } 80s # ], 80s # "valid": false 80s # } 80s ok 1 - test passes: data is valid: false 80s 1..1 80s } 80s ok 758 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive mismatch (but $dynamicRef is ignored)" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s # 80s ok 759 - vocabulary.json: "valid $vocabulary: everything is valid" - "a valid $vocabulary value" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 760 - vocabulary.json: "wrong specification version: but this is draft7" - "invalid $vocabulary value: wrong specification version" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s ok 761 - vocabulary.json: "but this is draft7" - "invalid $vocabulary value: unknown URI" { 80s # result: { 80s # "valid": true 80s # } 80s # short-circuited result: { 80s # "valid": true 80s # } 80s ok 1 - test passes: data is valid: true 80s 1..1 80s } 80s # 80s # generated with: Test::JSON::Schema::Acceptance 1.029 80s # specification version: draft7 80s # using custom test directory: t/additional-tests-draft7 80s # optional tests included: yes 80s # 80s # filename pass todo-fail fail 80s # --------------------------------------------------------------- 80s # badRef.json 3 0 0 80s # faux-buggy-schemas.json 2 0 0 80s # format-date-time.json 4 0 0 80s # format-date.json 1 0 0 80s # format-ipv4.json 4 0 0 80s # format-relative-json-pointer.json 7 0 0 80s # format-time.json 13 0 0 80s # id.json 9 0 0 80s # integers.json 31 0 0 80s # keyword-independence.json 636 0 0 80s # loose-types-const-enum.json 8 0 0 80s # not-an-anchor.json 2 0 0 80s # not-an-id.json 2 0 0 80s # ref-and-id.json 2 0 0 80s # ref.json 10 0 0 80s # short-circuit.json 16 0 0 80s # unknownKeyword.json 8 0 0 80s # vocabulary.json 3 0 0 80s # --------------------------------------------------------------- 80s # TOTAL 761 0 0 80s # 80s # Congratulations, all non-optional tests are passing! 80s # 80s ok 762 - no leaks in the main evaluator object 80s ok 763 - no leaks in the short-circuiting evaluator object 80s ok 764 - got unsupported keyword warnings 80s 1..764 80s ok 80s t/annotations.t ......................... 80s # Seeded srand with seed '20251102' from local date. 80s ok 1 - draft7 { 80s ok 1 - user cannot enable annotations for draft7 80s ok 2 - user cannot enable annotations for draft7 even as an override 80s 1..2 80s } 80s ok 2 - allOf { 80s ok 1 - evaluation of the allOf keyword fails 80s ok 2 - failing allOf: state is correct after evaluating 80s ok 3 - evaluation of the allOf keyword succeeds 80s ok 4 - passing allOf: state is correct after evaluating 80s ok 5 - annotation collection can be turned off in evaluate() 80s ok 6 - ...but the value is still true on the object 80s ok 7 - collect_annotations defaults to false 80s ok 8 - annotation collection can be turned on in evaluate() also 80s 1..8 80s } 80s ok 3 - oneOf { 80s ok 1 - evaluation of the oneOf keyword fails 80s ok 2 - failing oneOf: state is correct after evaluating 80s ok 3 - evaluation of the oneOf keyword succeeds 80s ok 4 - passing oneOf: state is correct after evaluating 80s 1..4 80s } 80s ok 4 - not { 80s ok 1 - evaluation of the not keyword fails 80s ok 2 - failing not: state is correct after evaluating 80s ok 3 - evaluation of the not keyword fails 80s ok 4 - failing not: state is correct after evaluating (annotations will be ultimately discarded) 80s ok 5 - evaluation of the not keyword succeeds 80s ok 6 - passing not: state is correct after evaluating 80s ok 7 - annotations are still collected inside a "not", otherwise the unevaluatedProperties would have returned false 80s 1..7 80s } 80s ok 5 - prefixItems { 80s ok 1 - no items means that "prefixItems" succeeds 80s ok 2 - no items: no annotation is produced by prefixItems 80s ok 3 - one item 80s ok 4 - passing prefixItems: one item is annotated 80s ok 5 - two items, one failing 80s ok 6 - failing prefixItems still collects annotations 80s 1..6 80s } 80s ok 6 - schema-items { 80s ok 1 - no items means that "items" succeeds 80s ok 2 - no items: no annotation is produced by items 80s ok 3 - one item 80s ok 4 - passing items: one item is annotated 80s ok 5 - two items, one failing 80s ok 6 - failing items still collects annotations 80s 1..6 80s } 80s ok 7 - additionalItems { 80s ok 1 - no items means that "additionalItems" succeeds 80s ok 2 - no items: no annotation is produced by additionaltems 80s ok 3 - one item 80s ok 4 - additionalItems does nothing without items 80s 1..4 80s } 80s ok 8 - properties { 80s ok 1 - no items means that "properties" succeeds 80s ok 2 - no properties: annotation is still produced by properties 80s ok 3 - one property 80s ok 4 - passing properties: one property is annotated 80s ok 5 - two properties, one failing 80s ok 6 - failing properties still collects annotations 80s 1..6 80s } 80s ok 9 - patternProperties { 80s ok 1 - no items means that "patternProperties" succeeds 80s ok 2 - no pProperties: annotation is still produced by patternProperties 80s ok 3 - one property 80s ok 4 - passing properties: one property is annotated 80s ok 5 - two properties, one failing 80s ok 6 - failing patternProperties still collects annotations 80s 1..6 80s } 80s ok 10 - additionalProperties { 80s ok 1 - no items means that "additionalProperties" succeeds 80s ok 2 - no properties: no annotation is produced by additionalProperties 80s ok 3 - one property 80s ok 4 - passing additionalProperties: one property is annotated 80s ok 5 - two properties, one failing 80s ok 6 - failing properties still collects annotations 80s 1..6 80s } 80s ok 11 - unevaluatedProperties { 80s ok 1 - no items means that "unevaluatedProperties" succeeds 80s ok 2 - no properties: no annotation is produced by unevaluatedProperties 80s ok 3 - one property 80s ok 4 - passing unevaluatedProperties: one property is annotated 80s ok 5 - two properties, one failing 80s ok 6 - failing unevaluatedProperties still collects annotations 80s 1..6 80s } 80s ok 12 - collect_annotations and unevaluated keywords { 80s ok 1 - when "collect_annotations" is explicitly set to false, unevaluatedItems can still be used (valid result, no annotations in result) 80s ok 2 - when "collect_annotations" is explicitly set to false, unevaluatedItems can still be used (invalid result) 80s ok 3 - when "collect_annotations" is explicitly set to false, unevaluatedProperties can still be used (valid result, no annotations) 80s ok 4 - when "collect_annotations" is explicitly set to false, unevaluatedProperties can still be used (invalid result) 80s ok 5 - when "collect_annotations" is explicitly set to false, unevaluatedProperties still be used, even in other documents (valid result) 80s ok 6 - when "collect_annotations" is explicitly set to false, unevaluatedProperties still be used, even in other documents (invalid result) 80s ok 7 - when "collect_annotations" is set to true, unevaluatedItems works, and annotations are returned 80s ok 8 - when "collect_annotations" is set to true, unevaluatedProperties passes, and annotations are returned 80s ok 9 - when "collect_annotations" is not set, unevaluatedItems still works, but annotations are not returned 80s ok 10 - when "collect_annotations" is not set, unevaluatedProperties still works, but annotations are not returned 80s ok 11 - ... still works when unevaluated keywords are in a separate document 80s ok 12 - referenced schemas still produce annotations internally when needed, even when not required to evaluate themselves in isolation 80s 1..12 80s } 80s ok 13 - annotate unknown keywords { 80s ok 1 - no annotations even when collect_annotations is false 80s ok 2 - unknown keywords are collected as annotations 80s ok 3 - "unknown" keyword is set on the annotation objects for unknown keywords 80s ok 4 - no annotations from unknown keywords in draft2019-09 80s 1..4 80s } 80s ok 14 - items + additionalItems, prefixItems + items { 80s ok 1 - schema-based items + additionalItems 80s ok 2 - prefixItems + schema-based items 80s 1..2 80s } 80s 1..14 80s ok 80s t/boolean-data.t ........................ 80s # Seeded srand with seed '20251102' from local date. 80s ok 1 - strict booleans (default) { 80s ok 1 - in data, bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ) is a boolean 80s ok 2 - in data, bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) is a boolean 80s ok 3 - correct error generated from type for undef 80s ok 4 - correct error generated from type for 0 80s ok 5 - correct error generated from type for 1 80s ok 6 - correct error generated from type for '0' 80s ok 7 - correct error generated from type for '1' 80s ok 8 - correct error generated from type for 'false' 80s ok 9 - correct error generated from type for 'true' 80s ok 10 - correct error generated from type for \0 80s ok 11 - correct error generated from type for \1 80s ok 12 - in data, undef not is a boolean 80s ok 13 - in data, 0 not is a boolean 80s ok 14 - in data, 1 not is a boolean 80s ok 15 - in data, '0' not is a boolean 80s ok 16 - in data, '1' not is a boolean 80s ok 17 - in data, 'false' not is a boolean 80s ok 18 - in data, 'true' not is a boolean 80s ok 19 - in data, \0 not is a boolean 80s ok 20 - in data, \1 not is a boolean 80s 1..20 80s } 80s ok 2 - scalarref_booleans = 1 { 80s ok 1 - in data, bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ) is a boolean 80s ok 2 - in data, bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) is a boolean 80s ok 3 - in data, \0 is a boolean 80s ok 4 - in data, \1 is a boolean 80s ok 5 - correct error generated from type for ['null',undef] 80s ok 6 - correct error generated from type for ['integer',0] 80s ok 7 - correct error generated from type for ['integer',1] 80s ok 8 - correct error generated from type for ['string','0'] 80s ok 9 - correct error generated from type for ['string','1'] 80s ok 10 - correct error generated from type for ['string','false'] 80s ok 11 - correct error generated from type for ['string','true'] 80s ok 12 - items are all considered unique when types differ, even when perl treats them similarly 80s ok 13 - scalarrefs compare as identical to their counterpart booleans 80s ok 14 - scalarrefs compare as identical to their counterpart booleans 80s ok 15 - scalarrefs compare as identical to their counterpart booleans 80s ok 16 - scalarrefs compare as identical to their counterpart booleans 80s 1..16 80s } 80s 1..2 80s ok 80s t/boolean-schemas.t ..................... 80s # Seeded srand with seed '20251102' from local date. 80s ok 1 - false is not a schema 80s ok 2 - schema: false evaluates to: false 80s ok 3 - invalid result structure looks correct 80s ok 4 - no exceptions in evaluate 80s ok 5 - true is not a schema 80s ok 6 - schema: true evaluates to: true 80s ok 7 - invalid result structure looks correct 80s ok 8 - no exceptions in evaluate 80s ok 9 - false is not a schema 80s ok 10 - schema: false evaluates to: false 80s ok 11 - invalid result structure looks correct 80s ok 12 - no exceptions in evaluate 80s ok 13 - true is not a schema 80s ok 14 - schema: true evaluates to: true 80s ok 15 - invalid result structure looks correct 80s ok 16 - no exceptions in evaluate 80s ok 17 - {} is not a schema 80s ok 18 - schema: {} evaluates to: true 80s ok 19 - invalid result structure looks correct 80s ok 20 - no exceptions in evaluate 80s ok 21 - 0 is not a schema 80s ok 22 - schema: 0 evaluates to: false 80s ok 23 - invalid result structure looks correct 80s ok 24 - no exceptions in evaluate 80s ok 25 - 1 is not a schema 80s ok 26 - schema: 1 evaluates to: false 80s ok 27 - invalid result structure looks correct 80s ok 28 - no exceptions in evaluate 80s ok 29 - false is not a schema 80s ok 30 - schema: false evaluates to: false 80s ok 31 - invalid result structure looks correct 80s ok 32 - no exceptions in evaluate 80s ok 33 - true is not a schema 80s ok 34 - schema: true evaluates to: false 80s ok 35 - invalid result structure looks correct 80s ok 36 - no exceptions in evaluate 80s ok 37 - invalid schema type results in error 80s ok 38 - scalarref for schema results in error, even when scalarref_booleans is true 80s 1..38 80s ok 81s t/cached-metaschemas.t .................. 81s # Seeded srand with seed '20251102' from local date. 81s ok 1 - load cached metaschema { 81s ok 1 - this resource is not yet known 81s ok 2 - loaded metaschema from sharedir cache 81s ok 3 - this resource is now in the resource index 81s 1..3 81s } 81s ok 2 - resource collision with cached metaschema { 81s ok 1 - cannot introduce another schema whose id collides with a cached schema, even if it isn't loaded yet 81s 1..1 81s } 81s 1..2 81s ok 81s t/callbacks.t ........................... 81s # Seeded srand with seed '20251102' from local date. 81s ok 1 - evaluation callbacks { 81s ok 1 - evaluation was successful 81s ok 2 - identified all data paths where a $ref was used 81s ok 3 - evaluation was not successful 81s ok 4 - no callbacks on failure: innermost $ref failed, so all other $refs failed too 81s ok 5 - evaluation was successful 81s ok 6 - successful subschemas have callbacks called, but not failed subschemas 81s 1..6 81s } 81s ok 2 - callbacks for keywords without eval subs { 81s ok 1 - evaluation was successful 81s ok 2 - callbacks are triggered for keywords even when they lack evaluation subs 81s 1..2 81s } 81s ok 3 - callbacks that produce errors { 81s ok 1 - result object contains the callback error, and the other errors 81s ok 2 - result object contains the callback error, and short-circuits execution 81s 1..2 81s } 81s 1..3 81s ok 81s t/content-encoding.t .................... 81s # Seeded srand with seed '20251102' from local date. 81s ok 1 - unrecognized encoding formats do not result in errors, when not asserting { 81s ok 1 - in evaluate(), annotations are collected and no validation is performed 81s 1..1 81s } 81s ok 2 - media_type and encoding handlers { 81s ok 1 - upper-cased names are not accepted 81s ok 2 - application/json media_type decoder 81s ok 3 - */* has no default match 81s ok 4 - default text/plain media_type decoder 81s ok 5 - getter uses the casefolded name 81s ok 6 - getter matches to wildcard entries 81s ok 7 - getter uses new override entry for wildcard 81s ok 8 - getter prefers case-insensitive matches to wildcard entries 81s ok 9 - getter matches to wildcard entries 81s ok 10 - text/* matches itself 81s ok 11 - getter still prefers case-insensitive matches to wildcard entries 81s ok 12 - text/* is preferred to */* 81s ok 13 - */* matches */*, once defined 81s ok 14 - */* is returned as a last resort 81s ok 15 - application/x-www-form-urlencoded happy path with unicode 81s ok 16 - application/x-ndjson happy path with unicode 81s ok 17 - application/x-ndjson dies with line number of the bad data 81s ok 18 - base64 encoding decoder + application/json media_type decoder 81s ok 19 - base64url encoding decoder + application/json media_type decoder 81s 1..19 81s } 81s ok 3 - draft2020-12 assertions { 81s ok 1 - under the current spec version, content* keywords are not assertions 81s ok 2 - contentEncoding first decodes the string, erroring if it can't 81s ok 3 - then contentMediaType parses the decoded string, erroring if it can't, and does not continue with the schema 81s ok 4 - contentSchema evaluates the decoded data 81s ok 5 - null data is handled properly 81s ok 6 - contentSchema successfully evaluates the decoded data 81s 1..6 81s } 81s ok 4 - draft7 assertions { 81s ok 1 - in draft7, assertion behaviour is the default 81s ok 2 - in draft7, then contentMediaType parses the decoded string, erroring if it can't, and does not continue with the schema 81s ok 3 - under draft7, content* are assertions by default, but contentSchema does not exist 81s 1..3 81s } 81s ok 5 - more assertions { 81s ok 1 - evaluation aborts with an unrecognized contentEncoding 81s ok 2 - evaluation aborts with an unrecognized contentMediaType 81s 1..2 81s } 81s ok 6 - use of an absolute URI and different dialect within contentSchema { 81s ok 1 - evaluation of the subschema correctly uses the new $id and $schema 81s 1..1 81s } 81s 1..6 81s ok 82s t/dialects.t ............................ 82s # Seeded srand with seed '20251102' from local date. 82s ok 1 - invalid use of the $schema keyword { 82s ok 1 - $schema can only appear at the root of a schema, when there is no canonical URI 82s ok 2 - $schema can only appear where the canonical URI has no fragment, when there is a canonical URI 82s ok 3 - this is still not a resource root, even in a $ref target 82s 1..3 82s } 82s ok 2 - defaults without a $schema keyword { 82s ok 1 - boolean schema: no $id, no $schema 82s ok 2 - boolean schema: defaults to draft2020-12 without a $schema keyword 82s ok 3 - object schema: no $id, no $schema 82s ok 4 - object schema: defaults to draft2020-12 without a $schema keyword 82s ok 5 - "not" keyword, from the Applicator vocabulary, is traversed at the root level 82s ok 6 - object schema: $id, no $schema 82s ok 7 - named resource defaults to draft2020-12 without a $schema keyword 82s ok 8 - boolean schema: no $id, no $schema 82s ok 9 - boolean schema: specification_version overridden 82s ok 10 - object schema: no $id, no $schema, specification version overridden, other keywords are ignored during traversal 82s ok 11 - object schema: no $id, no $schema, specification version overridden, other keywords are ignored during evaluation 82s ok 12 - object schema: overridden to draft7 82s ok 13 - object schema: $id, no $schema, unrecognized+invalid keywords are ignored during traversal 82s ok 14 - object schema: $id, no $schema 82s ok 15 - object schema: overridden to draft7 and other keywords are ignored 82s 1..15 82s } 82s ok 3 - behaviour with a $schema keyword { 82s ok 1 - object schema: no $id, has $schema, unrecognized+invalid keywords are ignored during traversal 82s ok 2 - object schema: no $id, has $schema, unrecognized keywords are ignored during evaluation 82s ok 3 - semantics can be changed to another draft version 82s ok 4 - schema is accepted with $schema without an empty fragment 82s ok 5 - ..and is still recognized as draft7 82s ok 6 - $id and $schema, unrecognized+invalid keywords are ignored during traversal 82s ok 7 - $id and $schema 82s ok 8 - named resource can be changed to another draft version and other keywords are ignored 82s ok 9 - no $id, specification version overridden twice; unrecognized+invalid keywords are ignored during traversal 82s ok 10 - no $id, specification version overridden twice, other keywords are ignored during evaluation 82s ok 11 - unnamed resource can be changed to another draft version 82s ok 12 - no $id, specification version overridden twice; unrecognized+invalid keywords are ignored during traversal 82s ok 13 - no $id, specification version overridden twice, other keywords are ignored during evaluation 82s ok 14 - unnamed resource can be changed to another draft version 82s 1..14 82s } 82s ok 4 - setting or changing specification versions in a single document { 82s ok 1 - $schema can appear adjacent to any $id 82s 1..1 82s } 82s ok 5 - changing specification versions across documents { 82s ok 1 - no unexpected warnings 82s ok 2 - switching between specification versions is acceptable when crossing document boundaries 82s ok 3 - resources for top level schema 82s ok 4 - resources for subschema 82s ok 5 - no unexpected warnings 82s ok 6 - switching between specification versions is acceptable when crossing document boundaries 82s ok 7 - resources for top level schema 82s ok 8 - resources for subschema 82s 1..8 82s } 82s ok 6 - changing specification versions within documents { 82s # 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. 82s ok 1 - switching between specification versions is acceptable within a document, draft2019-09 -> draft7 82s ok 2 - resources for top level schema 82s ok 3 - resources for subschema 82s # 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. 82s ok 4 - switching between specification versions is acceptable within a document, draft7 -> draf2020-12 82s ok 5 - resources for top level schema 82s ok 6 - resources for subschema 82s # 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. 82s ok 7 - switching between specification versions is acceptable within a document, draft2020-12 -> draft4 82s ok 8 - resources for top level schema 82s ok 9 - resources for subschema 82s 1..9 82s } 82s ok 7 - $vocabulary syntax { 82s ok 1 - $vocabulary syntax checks 82s ok 2 - $vocabulary location check - resource root 82s ok 3 - $vocabulary location check - document root 82s ok 4 - successfully evaluated a metaschema that specifies vocabularies 82s ok 5 - metaschemas are not saved on the resource 82s ok 6 - ..but once we use the schema as a metaschema, 82s ok 7 - ... the vocabulary information is now cached in the evaluator 82s 1..7 82s } 82s ok 8 - changing dialects (same specification version) { 82s ok 1 - evaluation of the subschema in another document correctly uses the new $id and $schema 82s ok 2 - evaluation of the subschema in the same document via a $ref correctly uses the new $id and $schema 82s ok 3 - evaluation of the subschema in the same document with no $ref correctly uses the new $id and $schema 82s ok 4 - no errors found when traversing a document with a malformed keyword outside the dialect 82s 1..4 82s } 82s ok 9 - standard metaschemas { 82s ok 1 - main metaschema evaluated against its own URI 82s ok 2 - main metaschema evaluated against its own content 82s ok 3 - core metaschema evaluated against the main metaschema URI 82s ok 4 - core metaschema evaluated against its own content 82s 1..4 82s } 82s ok 10 - custom metaschemas, without custom vocabularies { 82s ok 1 - document contains correct values 82s ok 2 - specification version detected from standard metaschema URI 82s ok 3 - custom metaschema restricts schemas to objects 82s ok 4 - custom metaschema recurses to standard metaschema 82s ok 5 - objects are acceptable schemas to this metaschema 82s ok 6 - metaschemas without $vocabulary can still be used in the $schema keyword 82s ok 7 - ..and schema uses the correct spec version and vocabularies 82s 1..7 82s } 82s ok 11 - custom metaschemas, with custom vocabularies { 82s ok 1 - $schema values must be strings 82s ok 2 - $schema values must be URIs 82s ok 3 - custom metaschemas are okay, but the document must be known 82s ok 4 - $vocabulary location check - document root 82s ok 5 - metaschemas must have an i$id 82s ok 6 - $vocabulary validation that must be deferred until used as a metaschema 82s ok 7 - vocabularies in the metaschema must match the $schema version 82s ok 8 - metaschemas using "$vocabulary" must contain vocabularies 82s ok 9 - metaschemas must contain the Core vocabulary 82s ok 10 - validation succeeds because "minimum" never gets run 82s ok 11 - document contains correct values 82s ok 12 - determined vocabularies to use for this schema 82s 1..12 82s } 82s ok 12 - custom vocabulary classes with add_vocabulary() { 82s ok 1 - vocabulary class must exist 82s ok 2 - vocabulary class must implement the role 82s ok 3 - vocabulary class must implement some subs 82s ok 4 - vocabulary() sub in the vocabulary class must return uri => specification_version pairs 82s ok 5 - parse error from bad vocab sub 82s ok 6 - vocabulary() sub in the vocabulary class must contain valid absolute, fragmentless URIs 82s ok 7 - vocabulary() sub in the vocabulary class must reference a known specification version 82s ok 8 - added a vocabulary sub 82s ok 9 - vocabulary was successfully added 82s ok 10 - custom vocabulary class has a conflicting evaluation_order 82s ok 11 - added another vocabulary sub 82s ok 12 - custom vocabulary class used by a custom metaschema used by a schema 82s ok 13 - $ keywords are prohibited 82s ok 14 - added another vocabulary sub 82s ok 15 - keywords cannot appear in more than one vocabulary in the same dialect 82s 1..15 82s } 82s ok 13 - $schema points to a boolean schema { 82s ok 1 - $schema cannot reference a boolean schema 82s 1..1 82s } 82s ok 14 - $ref to a different dialect { 82s ok 1 - evaluation of the subschema correctly uses the new $id and $schema 82s 1..1 82s } 82s 1..14 82s ok 82s t/document.t ............................ 82s # Seeded srand with seed '20251102' from local date. 82s ok 1 - boolean document { 82s ok 1 - boolean schema with no canonical_uri 82s ok 2 - boolean schema with invalid canonical_uri (fragment) 82s ok 3 - boolean schema with valid canonical_uri 82s 1..3 82s } 82s ok 2 - object document { 82s ok 1 - object schema with originally provided uri = '' and no root $id 82s ok 2 - object schema with originally provided uri = '' and no root $id 82s ok 3 - object schema with originally provided uri = '0' and no root $id 82s ok 4 - object schema with originally provided uri = '' and no root $id 82s ok 5 - object schema with originally provided uri = '' and no root $id 82s ok 6 - object schema with originally provided uri = '0' and no root $id 82s ok 7 - object schema with valid canonical_uri, no root $id 82s ok 8 - object schema with originally provided uri = '' and absolute root $id 82s ok 9 - object schema with originally provided uri = '' and absolute root $id 82s ok 10 - object schema with originally provided uri = '' and absolute root $id 82s ok 11 - originally provided uri is not indexed when overridden by an absolute root $id 82s ok 12 - originally provided uri is not indexed when overridden by an absolute root $id 82s ok 13 - originally provided uri is not indexed when overridden by an absolute root $id 82s ok 14 - when canonical_uri provided, the empty uri is not added as a referenceable uri 82s ok 15 - object schema with originally provided uri equal to root $id 82s ok 16 - object schema with canonical_uri and root $id, and additional resource schemas as well 82s ok 17 - relative $id at root is resolved against provided canonical_id 82s ok 18 - relative uri for inner $id 82s ok 19 - no root $id; absolute uri with path in subschema resource 82s ok 20 - no root $id or canonical_uri provided; anchor is indexed at the root 82s ok 21 - canonical_uri provided; empty uri not added as a referenceable uri when an anchor exists 82s ok 22 - absolute uri provided at root; adjacent anchor has the same canonical uri 82s ok 23 - absolute uri provided at root; anchor lower down has its own canonical uri 82s 1..23 82s } 82s ok 3 - $id and $anchor as properties { 82s ok 1 - did not index the $id and $anchor properties as if they were identifier keywords 82s 1..1 82s } 82s ok 4 - $id with an empty fragment { 82s ok 1 - $id is stored with the empty fragment stripped 82s 1..1 82s } 82s ok 5 - $id with a non-empty fragment { 82s ok 1 - did not index the $id with a non-empty fragment, nor use it as the base for other identifiers 82s ok 2 - canonical_uri 82s ok 3 - nothing was indexed 82s 1..3 82s } 82s ok 6 - $anchor not conforming to syntax { 82s ok 1 - did not index an $anchor with invalid characters 82s ok 2 - nothing was indexed 82s ok 3 - did not index a draft2020-12 $anchor with invalid characters, or non-fragment-only $id 82s ok 4 - nothing was indexed 82s ok 5 - did not index a draft2019-09 $anchor with invalid characters, or non-fragment-only $id 82s ok 6 - nothing was indexed 82s ok 7 - did not index a draft6 fragment-only $id with invalid characters, or non-fragment-only $id 82s ok 8 - nothing was indexed 82s ok 9 - did not index a draft7 fragment-only $id with invalid characters, or non-fragment-only $id 82s ok 10 - nothing was indexed 82s ok 11 - did not index a draft4 fragment-only id with invalid characters 82s ok 12 - nothing was indexed 82s ok 13 - no errors 82s ok 14 - can combine a canonical identifier with an anchor in draft4 82s 1..14 82s } 82s ok 7 - $schema not conforming to syntax { 82s ok 1 - invalid $schema is detected 82s 1..1 82s } 82s ok 8 - $anchor and $id below an $id that is not at the document root { 82s ok 1 - canonical_uri uses the path from the innermost $id, not document root $id 82s 1..1 82s } 82s ok 9 - JSON pointer and URI escaping { 82s ok 1 - properly escaped special characters in JSON pointers and URIs 82s ok 2 - schema locations are tracked 82s ok 3 - non-schema locations are also tracked 82s ok 4 - schema locations can be queried 82s 1..4 82s } 82s ok 10 - resource collisions { 82s ok 1 - no collision when adding an identical resource (after resolving with base uri) 82s ok 2 - detected collision between document's initial uri and a subschema's uri 82s ok 3 - detected collision between two subschema uris in a document 82s ok 4 - add first document, resolving resources to a base uri 82s ok 5 - the resource in the second document resolves to the same uri as from the first document 82s ok 6 - ignored "duplicate" uris embedded in non-schemas 82s 1..6 82s } 82s ok 11 - create document with explicit canonical_uri set to the same as root $id { 82s ok 1 - there is one single uri indexed to the document 82s 1..1 82s } 82s ok 12 - canonical_uri identification from a document with errors { 82s ok 1 - error lower down in document does not result in an inner identifier being used as canonical_uri 82s 1..1 82s } 82s ok 13 - custom metaschema_uri { 82s ok 1 - document contains correct values 82s ok 2 - determined vocabularies to use for this schema 82s ok 3 - validation succeeds because "minimum" never gets run 82s ok 4 - can evaluate at a subschema as well, with the same vocabularies 82s ok 5 - when not providing the original evaluator, the metaschema cannot be found 82s ok 6 - using the proper evaluator, schema validates against its metaschema, and "minimum" is ignored 82s ok 7 - no leaks in the evaluator object 82s 1..7 82s } 82s ok 14 - multiple uris used for resolution and identification, and original_uri { 82s ok 1 - document has correct resources, resolved against the provided base uri 82s ok 2 - evaluator has correct resources, resolved against the provided base uri 82s ok 3 - when evaluating the document using the canonical uri, error locations use the canonical uri 82s ok 4 - when evaluating the document using a retrieval uri, error locations still use the canonical uri 82s ok 5 - same document is added a second time 82s ok 6 - document resources are added using the new base, which appears in their canonical_uri values 82s ok 7 - when evaluating using the first base uri, error locations are relative to the provided base uri 82s ok 8 - when evaluating using the second base uri, error locations are relative to the original evaluation location 82s 1..8 82s } 82s 1..14 82s ok 83s t/equality.t ............................ 83s # Seeded srand with seed '20251102' from local date. 83s ok 1 - equality, using inflated data { 83s ok 1 - null == null is true 83s ok 2 - error is undefined 83s ok 3 - no unexpected error encountered 83s ok 4 - type of arg 0 was not mutated while making equality check 83s ok 5 - type of arg 1 was not mutated while making equality check 83s # 83s ok 6 - null == false is false 83s ok 7 - two instances differ at the expected place 83s ok 8 - error is correct 83s ok 9 - no unexpected error encountered 83s ok 10 - type of arg 0 was not mutated while making equality check 83s ok 11 - type of arg 1 was not mutated while making equality check 83s # 83s ok 12 - null == true is false 83s ok 13 - two instances differ at the expected place 83s ok 14 - error is correct 83s ok 15 - no unexpected error encountered 83s ok 16 - type of arg 0 was not mutated while making equality check 83s ok 17 - type of arg 1 was not mutated while making equality check 83s # 83s ok 18 - null == 1 is false 83s ok 19 - two instances differ at the expected place 83s ok 20 - error is correct 83s ok 21 - no unexpected error encountered 83s ok 22 - type of arg 0 was not mutated while making equality check 83s ok 23 - type of arg 1 was not mutated while making equality check 83s ok 24 - arg 1 did not gain a POK 83s # 83s ok 25 - null == "1" is false 83s ok 26 - two instances differ at the expected place 83s ok 27 - error is correct 83s ok 28 - no unexpected error encountered 83s ok 29 - type of arg 0 was not mutated while making equality check 83s ok 30 - type of arg 1 was not mutated while making equality check 83s ok 31 - arg 1 did not gain an NOK or IOK 83s # 83s ok 32 - ["a", "b", "c"] == ["a", "b", "c"] is true 83s ok 33 - error is undefined 83s ok 34 - no unexpected error encountered 83s ok 35 - type of arg 0 was not mutated while making equality check 83s ok 36 - type of arg 1 was not mutated while making equality check 83s # 83s ok 37 - ["a", "b", "c"] == ["a", "b"] is false 83s ok 38 - two instances differ at the expected place 83s ok 39 - error is correct 83s ok 40 - no unexpected error encountered 83s ok 41 - type of arg 0 was not mutated while making equality check 83s ok 42 - type of arg 1 was not mutated while making equality check 83s # 83s ok 43 - ["a", "b"] == ["b", "a"] is false 83s ok 44 - two instances differ at the expected place 83s ok 45 - error is correct 83s ok 46 - no unexpected error encountered 83s ok 47 - type of arg 0 was not mutated while making equality check 83s ok 48 - type of arg 1 was not mutated while making equality check 83s # 83s ok 49 - 1 == 1 is true 83s ok 50 - error is undefined 83s ok 51 - no unexpected error encountered 83s ok 52 - type of arg 0 was not mutated while making equality check 83s ok 53 - type of arg 1 was not mutated while making equality check 83s ok 54 - arg 0 did not gain a POK 83s ok 55 - arg 1 did not gain a POK 83s # 83s ok 56 - 1 == 1.0 is true 83s ok 57 - error is undefined 83s ok 58 - no unexpected error encountered 83s ok 59 - type of arg 0 was not mutated while making equality check 83s ok 60 - type of arg 1 was not mutated while making equality check 83s ok 61 - arg 0 did not gain a POK 83s ok 62 - arg 1 did not gain a POK 83s # 83s ok 63 - 1 == "1.0" is false 83s ok 64 - two instances differ at the expected place 83s ok 65 - error is correct 83s ok 66 - no unexpected error encountered 83s ok 67 - type of arg 0 was not mutated while making equality check 83s ok 68 - type of arg 1 was not mutated while making equality check 83s ok 69 - arg 0 did not gain a POK 83s ok 70 - arg 1 did not gain an NOK or IOK 83s # 83s ok 71 - "1.1" == 1.1 is false 83s ok 72 - two instances differ at the expected place 83s ok 73 - error is correct 83s ok 74 - no unexpected error encountered 83s ok 75 - type of arg 0 was not mutated while making equality check 83s ok 76 - type of arg 1 was not mutated while making equality check 83s ok 77 - arg 0 did not gain an NOK or IOK 83s ok 78 - arg 1 did not gain a POK 83s # 83s ok 79 - "1" == 1 is false 83s ok 80 - two instances differ at the expected place 83s ok 81 - error is correct 83s ok 82 - no unexpected error encountered 83s ok 83 - type of arg 0 was not mutated while making equality check 83s ok 84 - type of arg 1 was not mutated while making equality check 83s ok 85 - arg 0 did not gain an NOK or IOK 83s ok 86 - arg 1 did not gain a POK 83s # 83s ok 87 - "1.1" == 1.1 is false 83s ok 88 - two instances differ at the expected place 83s ok 89 - error is correct 83s ok 90 - no unexpected error encountered 83s ok 91 - type of arg 0 was not mutated while making equality check 83s ok 92 - type of arg 1 was not mutated while making equality check 83s ok 93 - arg 0 did not gain an NOK or IOK 83s ok 94 - arg 1 did not gain a POK 83s # 83s ok 95 - [1, 2] == [2, 1] is false 83s ok 96 - two instances differ at the expected place 83s ok 97 - error is correct 83s ok 98 - no unexpected error encountered 83s ok 99 - type of arg 0 was not mutated while making equality check 83s ok 100 - type of arg 1 was not mutated while making equality check 83s # 83s ok 101 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 2} is true 83s ok 102 - error is undefined 83s ok 103 - no unexpected error encountered 83s ok 104 - type of arg 0 was not mutated while making equality check 83s ok 105 - type of arg 1 was not mutated while making equality check 83s # 83s ok 106 - {"a" : 1} == {"a" : 1.0} is true 83s ok 107 - error is undefined 83s ok 108 - no unexpected error encountered 83s ok 109 - type of arg 0 was not mutated while making equality check 83s ok 110 - type of arg 1 was not mutated while making equality check 83s # 83s ok 111 - ["école", "ಠ_ಠ"] == ["école", "ಠ_ಠ"] is true 83s ok 112 - error is undefined 83s ok 113 - no unexpected error encountered 83s ok 114 - type of arg 0 was not mutated while making equality check 83s ok 115 - type of arg 1 was not mutated while making equality check 83s # 83s ok 116 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 3} is false 83s ok 117 - two instances differ at the expected place 83s ok 118 - error is correct 83s ok 119 - no unexpected error encountered 83s ok 120 - type of arg 0 was not mutated while making equality check 83s ok 121 - type of arg 1 was not mutated while making equality check 83s # 83s ok 122 - {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 4}} == {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 5}} is false 83s ok 123 - two instances differ at the expected place 83s ok 124 - error is correct 83s ok 125 - no unexpected error encountered 83s ok 126 - type of arg 0 was not mutated while making equality check 83s ok 127 - type of arg 1 was not mutated while making equality check 83s # 83s ok 128 - [{"a" : 1}] == [{"a" : 1, "b" : 2}] is false 83s ok 129 - two instances differ at the expected place 83s ok 130 - error is correct 83s ok 131 - no unexpected error encountered 83s ok 132 - type of arg 0 was not mutated while making equality check 83s ok 133 - type of arg 1 was not mutated while making equality check 83s # 83s ok 134 - [{"a" : 1}] == [{"b" : 2}] is false 83s ok 135 - two instances differ at the expected place 83s ok 136 - error is correct 83s ok 137 - no unexpected error encountered 83s ok 138 - type of arg 0 was not mutated while making equality check 83s ok 139 - type of arg 1 was not mutated while making equality check 83s # 83s ok 140 - {"foo" : [[0]]} == {"foo" : [[0, 1]]} is false 83s ok 141 - two instances differ at the expected place 83s ok 142 - error is correct 83s ok 143 - no unexpected error encountered 83s ok 144 - type of arg 0 was not mutated while making equality check 83s ok 145 - type of arg 1 was not mutated while making equality check 83s # 83s 1..145 83s } 83s ok 2 - equality, using JSON strings { 83s ok 1 - null == null is true 83s ok 2 - no unexpected error encountered 83s ok 3 - type of arg 0 was not mutated while making equality check 83s ok 4 - type of arg 1 was not mutated while making equality check 83s # 83s ok 5 - null == 1 is false 83s ok 6 - two instances differ at the expected place 83s ok 7 - no unexpected error encountered 83s ok 8 - type of arg 0 was not mutated while making equality check 83s ok 9 - type of arg 1 was not mutated while making equality check 83s ok 10 - arg 1 did not gain a POK 83s # 83s ok 11 - ["a", "b", "c"] == ["a", "b", "c"] is true 83s ok 12 - no unexpected error encountered 83s ok 13 - type of arg 0 was not mutated while making equality check 83s ok 14 - type of arg 1 was not mutated while making equality check 83s # 83s ok 15 - ["a", "b", "c"] == ["a", "b"] is false 83s ok 16 - two instances differ at the expected place 83s ok 17 - no unexpected error encountered 83s ok 18 - type of arg 0 was not mutated while making equality check 83s ok 19 - type of arg 1 was not mutated while making equality check 83s # 83s ok 20 - ["a", "b"] == ["b", "a"] is false 83s ok 21 - two instances differ at the expected place 83s ok 22 - no unexpected error encountered 83s ok 23 - type of arg 0 was not mutated while making equality check 83s ok 24 - type of arg 1 was not mutated while making equality check 83s # 83s ok 25 - 1 == 1 is true 83s ok 26 - no unexpected error encountered 83s ok 27 - type of arg 0 was not mutated while making equality check 83s ok 28 - type of arg 1 was not mutated while making equality check 83s ok 29 - arg 0 did not gain a POK 83s ok 30 - arg 1 did not gain a POK 83s # 83s ok 31 - 1 == 1.0 is true 83s ok 32 - no unexpected error encountered 83s ok 33 - type of arg 0 was not mutated while making equality check 83s ok 34 - type of arg 1 was not mutated while making equality check 83s ok 35 - arg 0 did not gain a POK 83s ok 36 - arg 1 did not gain a POK 83s # 83s ok 37 - 10 == 10.0 is true 83s ok 38 - no unexpected error encountered 83s ok 39 - type of arg 0 was not mutated while making equality check 83s ok 40 - type of arg 1 was not mutated while making equality check 83s ok 41 - arg 0 did not gain a POK 83s ok 42 - arg 1 did not gain a POK 83s # 83s ok 43 - [1, 2] == [2, 1] is false 83s ok 44 - two instances differ at the expected place 83s ok 45 - no unexpected error encountered 83s ok 46 - type of arg 0 was not mutated while making equality check 83s ok 47 - type of arg 1 was not mutated while making equality check 83s # 83s ok 48 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 2} is true 83s ok 49 - no unexpected error encountered 83s ok 50 - type of arg 0 was not mutated while making equality check 83s ok 51 - type of arg 1 was not mutated while making equality check 83s # 83s ok 52 - {"a" : 1} == {"a" : 1.0} is true 83s ok 53 - no unexpected error encountered 83s ok 54 - type of arg 0 was not mutated while making equality check 83s ok 55 - type of arg 1 was not mutated while making equality check 83s # 83s ok 56 - ["école", "ಠ_ಠ"] == ["école", "ಠ_ಠ"] is true 83s ok 57 - no unexpected error encountered 83s ok 58 - type of arg 0 was not mutated while making equality check 83s ok 59 - type of arg 1 was not mutated while making equality check 83s # 83s ok 60 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 3} is false 83s ok 61 - two instances differ at the expected place 83s ok 62 - no unexpected error encountered 83s ok 63 - type of arg 0 was not mutated while making equality check 83s ok 64 - type of arg 1 was not mutated while making equality check 83s # 83s ok 65 - {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 4}} == {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 5}} is false 83s ok 66 - two instances differ at the expected place 83s ok 67 - no unexpected error encountered 83s ok 68 - type of arg 0 was not mutated while making equality check 83s ok 69 - type of arg 1 was not mutated while making equality check 83s # 83s 1..69 83s } 83s ok 3 - equality, using scalarref_booleans { 83s ok 1 - false == true is false 83s ok 2 - two instances differ at the expected place 83s ok 3 - no unexpected error encountered 83s ok 4 - type of arg 0 was not mutated while making equality check 83s ok 5 - type of arg 1 was not mutated while making equality check 83s # 83s ok 6 - true == true is true 83s ok 7 - no unexpected error encountered 83s ok 8 - type of arg 0 was not mutated while making equality check 83s ok 9 - type of arg 1 was not mutated while making equality check 83s # 83s ok 10 - false == false is true 83s ok 11 - no unexpected error encountered 83s ok 12 - type of arg 0 was not mutated while making equality check 83s ok 13 - type of arg 1 was not mutated while making equality check 83s # 83s ok 14 - true == false is false 83s ok 15 - two instances differ at the expected place 83s ok 16 - no unexpected error encountered 83s ok 17 - type of arg 0 was not mutated while making equality check 83s ok 18 - type of arg 1 was not mutated while making equality check 83s # 83s ok 19 - null == false is false 83s ok 20 - two instances differ at the expected place 83s ok 21 - no unexpected error encountered 83s ok 22 - type of arg 0 was not mutated while making equality check 83s ok 23 - type of arg 1 was not mutated while making equality check 83s # 83s ok 24 - null == false is false 83s ok 25 - two instances differ at the expected place 83s ok 26 - no unexpected error encountered 83s ok 27 - type of arg 0 was not mutated while making equality check 83s ok 28 - type of arg 1 was not mutated while making equality check 83s # 83s 1..28 83s } 83s ok 4 - equality, using stringy_numbers { 83s ok 1 - 1 == 1 is true 83s ok 2 - no unexpected error encountered 83s ok 3 - type of arg 0 was not mutated while making equality check (get_type returns integer) 83s ok 4 - type of arg 1 was not mutated while making equality check (get_type returns integer) 83s ok 5 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 83s ok 6 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 83s ok 7 - arg 0 did not gain a POK 83s ok 8 - arg 1 did not gain a POK 83s # 83s ok 9 - 1 == 1.0 is true 83s ok 10 - no unexpected error encountered 83s ok 11 - type of arg 0 was not mutated while making equality check (get_type returns integer) 83s ok 12 - type of arg 1 was not mutated while making equality check (get_type returns integer) 83s ok 13 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 83s ok 14 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 83s ok 15 - arg 0 did not gain a POK 83s ok 16 - arg 1 did not gain a POK 83s # 83s ok 17 - 1 == "1.0" is true 83s ok 18 - no unexpected error encountered 83s ok 19 - type of arg 0 was not mutated while making equality check (get_type returns integer) 83s ok 20 - type of arg 1 was not mutated while making equality check (get_type returns string) 83s ok 21 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 83s ok 22 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 83s ok 23 - arg 0 did not gain a POK 83s ok 24 - arg 1 did not gain an NOK or IOK 83s # 83s ok 25 - "1.1" == 1.1 is true 83s ok 26 - no unexpected error encountered 83s ok 27 - type of arg 0 was not mutated while making equality check (get_type returns string) 83s ok 28 - type of arg 1 was not mutated while making equality check (get_type returns number) 83s ok 29 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 83s ok 30 - type of arg 1 was not mutated while making equality check (is_type('number') returns true) 83s ok 31 - arg 0 did not gain an NOK or IOK 83s ok 32 - arg 1 did not gain a POK 83s # 83s ok 33 - "1" == 1 is true 83s ok 34 - no unexpected error encountered 83s ok 35 - type of arg 0 was not mutated while making equality check (get_type returns string) 83s ok 36 - type of arg 1 was not mutated while making equality check (get_type returns integer) 83s ok 37 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 83s ok 38 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 83s ok 39 - arg 0 did not gain an NOK or IOK 83s ok 40 - arg 1 did not gain a POK 83s # 83s ok 41 - "1.1" == 1.1 is true 83s ok 42 - no unexpected error encountered 83s ok 43 - type of arg 0 was not mutated while making equality check (get_type returns string) 83s ok 44 - type of arg 1 was not mutated while making equality check (get_type returns number) 83s ok 45 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 83s ok 46 - type of arg 1 was not mutated while making equality check (is_type('number') returns true) 83s ok 47 - arg 0 did not gain an NOK or IOK 83s ok 48 - arg 1 did not gain a POK 83s # 83s ok 49 - "1" == "1.00" is true 83s ok 50 - no unexpected error encountered 83s ok 51 - type of arg 0 was not mutated while making equality check (get_type returns string) 83s ok 52 - type of arg 1 was not mutated while making equality check (get_type returns string) 83s ok 53 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 83s ok 54 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 83s ok 55 - arg 0 did not gain an NOK or IOK 83s ok 56 - arg 1 did not gain an NOK or IOK 83s # 83s ok 57 - "1.10" == "1.1000" is true 83s ok 58 - no unexpected error encountered 83s ok 59 - type of arg 0 was not mutated while making equality check (get_type returns string) 83s ok 60 - type of arg 1 was not mutated while making equality check (get_type returns string) 83s ok 61 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 83s ok 62 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 83s ok 63 - arg 0 did not gain an NOK or IOK 83s ok 64 - arg 1 did not gain an NOK or IOK 83s # 83s ok 65 - "x" == "x" is true 83s ok 66 - no unexpected error encountered 83s ok 67 - type of arg 0 was not mutated while making equality check (get_type returns string) 83s ok 68 - type of arg 1 was not mutated while making equality check (get_type returns string) 83s ok 69 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 83s ok 70 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 83s ok 71 - arg 0 did not gain an NOK or IOK 83s ok 72 - arg 1 did not gain an NOK or IOK 83s # 83s ok 73 - "x" == "y" is false 83s ok 74 - two instances differ at the expected place 83s ok 75 - no unexpected error encountered 83s ok 76 - type of arg 0 was not mutated while making equality check (get_type returns string) 83s ok 77 - type of arg 1 was not mutated while making equality check (get_type returns string) 83s ok 78 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 83s ok 79 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 83s ok 80 - arg 0 did not gain an NOK or IOK 83s ok 81 - arg 1 did not gain an NOK or IOK 83s # 83s ok 82 - "x" == 0 is false 83s ok 83 - two instances differ at the expected place 83s ok 84 - no unexpected error encountered 83s ok 85 - type of arg 0 was not mutated while making equality check (get_type returns string) 83s ok 86 - type of arg 1 was not mutated while making equality check (get_type returns integer) 83s ok 87 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 83s ok 88 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 83s ok 89 - arg 0 did not gain an NOK or IOK 83s ok 90 - arg 1 did not gain a POK 83s # 83s ok 91 - 0 == "y" is false 83s ok 92 - two instances differ at the expected place 83s ok 93 - no unexpected error encountered 83s ok 94 - type of arg 0 was not mutated while making equality check (get_type returns integer) 83s ok 95 - type of arg 1 was not mutated while making equality check (get_type returns string) 83s ok 96 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 83s ok 97 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 83s ok 98 - arg 0 did not gain a POK 83s ok 99 - arg 1 did not gain an NOK or IOK 83s # 83s ok 100 - "5" == 5 is true 83s ok 101 - no unexpected error encountered 83s ok 102 - type of arg 0 was not mutated while making equality check (get_type returns string) 83s ok 103 - type of arg 1 was not mutated while making equality check (get_type returns string) 83s ok 104 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 83s ok 105 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 83s ok 106 - arg 0 did not gain an NOK or IOK 83s # 83s ok 107 - 5 == 5 is true 83s ok 108 - no unexpected error encountered 83s ok 109 - type of arg 0 was not mutated while making equality check (get_type returns integer) 83s ok 110 - type of arg 1 was not mutated while making equality check (get_type returns string) 83s ok 111 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 83s ok 112 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 83s ok 113 - arg 0 did not gain a POK 83s # 83s ok 114 - "5" == "five" is false 83s ok 115 - two instances differ at the expected place 83s ok 116 - no unexpected error encountered 83s ok 117 - type of arg 0 was not mutated while making equality check (get_type returns string) 83s ok 118 - type of arg 1 was not mutated while making equality check (get_type returns ambiguous type) 83s ok 119 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 83s ok 120 - arg 0 did not gain an NOK or IOK 83s # 83s ok 121 - 5 == "five" is false 83s ok 122 - two instances differ at the expected place 83s ok 123 - no unexpected error encountered 83s ok 124 - type of arg 0 was not mutated while making equality check (get_type returns integer) 83s ok 125 - type of arg 1 was not mutated while making equality check (get_type returns ambiguous type) 83s ok 126 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 83s ok 127 - arg 0 did not gain a POK 83s # 83s ok 128 - "five" == "five" is false 83s ok 129 - two instances differ at the expected place 83s ok 130 - no unexpected error encountered 83s ok 131 - type of arg 0 was not mutated while making equality check (get_type returns ambiguous type) 83s ok 132 - type of arg 1 was not mutated while making equality check (get_type returns ambiguous type) 83s # 83s 1..132 83s } 83s 1..4 83s ok 83s t/errors.t .............................. 83s # Seeded srand with seed '20251102' from local date. 83s ok 1 - multiple types { 83s ok 1 - type returned false 83s ok 2 - got error count 83s ok 3 - correct error generated from type 83s ok 4 - result object serializes correctly 83s ok 5 - cloning leaves absolute_keyword_location as-is 83s 1..5 83s } 83s ok 2 - multipleOf { 83s ok 1 - correct error generated from multipleOf 83s 1..1 83s } 83s ok 3 - uniqueItems { 83s ok 1 - correct error generated from uniqueItems 83s 1..1 83s } 83s ok 4 - allOf, not, and false schema { 83s ok 1 - correct errors with locations; did not collect errors inside "not" 83s ok 2 - short-circuited results contain fewer errors 83s 1..2 83s } 83s ok 5 - anyOf keeps all errors for false paths when invalid, discards errors for false paths when valid { 83s ok 1 - correct errors with locations; did not collect errors inside "not" 83s ok 2 - short-circuited results contain the same errors (short-circuiting not possible) 83s ok 3 - did not collect errors from failure paths from successful anyOf 83s ok 4 - no errors collected for true validation 83s 1..4 83s } 83s ok 6 - applicators with non-boolean subschemas, discarding intermediary errors - items { 83s ok 1 - collected all errors from subschemas for failing branches only (passing branches discard errors) 83s ok 2 - short-circuited results contain fewer errors 83s 1..2 83s } 83s ok 7 - applicators with non-boolean subschemas, discarding intermediary errors - contains { 83s ok 1 - collected all errors from subschemas for failing branches only (passing branches discard errors) 83s ok 2 - short-circuited results contain the same errors 83s 1..2 83s } 83s ok 8 - errors with $refs { 83s ok 1 - errors have correct absolute keyword location via $ref 83s 1..1 83s } 83s ok 9 - const and enum { 83s ok 1 - got details about object differences in errors from const and enum 83s 1..1 83s } 83s ok 10 - exceptions { 83s ok 1 - attempting to evaluate a json string returns the exception as an error 83s ok 2 - exception flag is true on the result 83s ok 3 - a subschema of an invalid type returns an error at the right position, and evaluation continues 83s ok 4 - exception flag is true on the result 83s ok 5 - invalid argument to "type" returns an error at the right position, and evaluation continues 83s ok 6 - exception flag is true on the result 83s 1..6 83s } 83s ok 11 - errors after crossing multiple $refs using $id and $anchor { 83s ok 1 - errors have correct absolute keyword location via $ref 83s ok 2 - absolute keyword location is correct, even when not used in the $ref 83s 1..2 83s } 83s ok 12 - unresolvable $ref to a local resource { 83s ok 1 - error for a bad $ref reports the correct absolute location that was referred to 83s ok 2 - exception flag is true on the result 83s 1..2 83s } 83s ok 13 - unresolvable $ref to a remote resource { 83s ok 1 - error for a bad $ref reports the correct absolute location that was referred to 83s ok 2 - exception flag is true on the result 83s 1..2 83s } 83s ok 14 - unresolvable $ref to plain-name fragment { 83s ok 1 - properly handled a bad $ref to an anchor 83s ok 2 - exception flag is true on the result 83s 1..2 83s } 83s ok 15 - abort due to a schema error { 83s ok 1 - exception inside a oneOf (where errors are localized) are still included in the result 83s 1..1 83s } 83s ok 16 - sorted property names { 83s ok 1 - property names are considered in sorted order 83s 1..1 83s } 83s ok 17 - bad regex in schema { 83s ok 1 - bad "pattern" and "patternProperties" regexes are properly noted in error 83s ok 2 - bad "pattern" regex is properly noted in error 83s ok 3 - "pattern" regex is now valid, due to the Unicode property becoming defined 83s 1..3 83s } 83s ok 18 - JSON pointer escaping { 83s ok 1 - JSON pointers are properly escaped; URIs doubly so 83s ok 2 - absoluteKeywordLocation is omitted when paths are the same, not counting uri encoding 83s ok 3 - use of _keyword_path_suffix in a fatal error 83s 1..3 83s } 83s ok 19 - absoluteKeywordLocation { 83s ok 1 - absoluteKeywordLocation is included when different from instanceLocation, even when empty 83s ok 2 - absoluteKeywordLocation is not included when the path equals keywordLocation, even if a $ref is present 83s ok 3 - absoluteKeywordLocation is never "\#" 83s ok 4 - absoluteKeywordLocation reflects the canonical schema uri as it changes when passing through $id 83s ok 5 - plain-name fragment in $id does not change canonical schema uri 83s 1..5 83s } 83s ok 20 - dependentRequired { 83s ok 1 - dependentRequired traversal error 83s 1..1 83s } 83s ok 21 - numbers in output { 83s ok 1 - numbers in errors do not lose any digits of precision 83s 1..1 83s } 83s ok 22 - overriding starting locations { 83s ok 1 - can alter locations with data_path, traversed_keyword_path, and add_schema() 83s 1..1 83s } 83s ok 23 - recommended_response { 83s ok 1 - recommended_response is not defined when there are no errors 83s ok 2 - recommended_response uses the first error in the result 83s ok 3 - recommended_response indicates an exception occurred 83s ok 4 - recommended_response uses the one from the error that is explicitly set 83s ok 5 - cloning copies recommended_response 83s 1..5 83s } 83s ok 24 - exclusiveMaximum, exclusiveMinimum across drafts { 83s ok 1 - later drafts; errors are produced separately from the keywords 83s ok 2 - later drafts; two errors can result 83s ok 3 - draft4: one error comes from maximum, but includes the exclusiveMaximum check 83s ok 4 - draft4: maximum + exclusiveMaximum checks are combined 83s ok 5 - draft4: exclusive check uses the right boundary 83s ok 6 - draft4: maximum check is correct 83s 1..6 83s } 83s 1..24 83s ok 83s t/evaluate_json_string.t ................ 83s # Seeded srand with seed '20251102' from local date. 83s ok 1 - we have a JSON decoder 83s ok 2 - json data "true" is evaluated successfully 83s ok 3 - no exceptions in evaluate_json_string on good json 83s ok 4 - evaluating bad json data returns false, with error 83s ok 5 - no exceptions in evaluate_json_string on bad json 83s 1..5 83s ok 84s t/find-identifiers.t .................... 84s # Seeded srand with seed '20251102' from local date. 84s ok 1 - $id sets canonical uri { 84s ok 1 - $id was recognized - $ref was successfully traversed 84s ok 2 - resources indexed; document canonical_uri is still unset 84s ok 3 - the same document object is indexed under both URIs 84s ok 4 - the schema contains no blessed leaf nodes 84s 1..4 84s } 84s ok 2 - anchors { 84s ok 1 - $id was recognized - absolute locations use json paths, not anchors 84s ok 2 - internal resource index is correct 84s 1..2 84s } 84s ok 3 - $anchor at root without $id { 84s ok 1 - $id without anchor was recognized - absolute locations use json paths, not anchors 84s ok 2 - internal resource index is correct 84s 1..2 84s } 84s ok 4 - $ids and $anchors in subschemas after $id changes { 84s ok 1 - $anchor is legal in a subschema 84s ok 2 - internal resource index is correct 84s 1..2 84s } 84s ok 5 - invalid $id and $anchor { 84s ok 1 - bad $id and $anchor are detected, even if bad definitions are not traversed 84s ok 2 - "bad" $ids and $anchors that are not actually keywords are not reported as errors 84s 1..2 84s } 84s ok 6 - nested $ids { 84s ok 1 - errors have the correct location 84s ok 2 - properly resolved all the nested $ids 84s 1..2 84s } 84s ok 7 - multiple documents, each using canonical_uri = "" { 84s ok 1 - evaluation of schema1 84s ok 2 - resources in initial schema are indexed 84s ok 3 - successful evaluation of schema2 84s ok 4 - resources in second schema are indexed; all resources from first schema are preserved except uri="" 84s 1..4 84s } 84s ok 8 - multiple documents, each using canonical_uri = "", collisions in other resources { 84s ok 1 - evaluation of schema1 84s ok 2 - resources in initial schema are indexed 84s ok 3 - schema2 cannot be evaluated - an internal $id collides with an existing resource 84s 1..3 84s } 84s ok 9 - resource collisions in canonical uris { 84s ok 1 - detected collision between a document's initial uri and a document's subschema's uri 84s ok 2 - detected collision between two document subschema uris 84s 1..2 84s } 84s ok 10 - relative uri in $id { 84s ok 1 - root schema location is correctly identified 84s ok 2 - properly able to traverse a recursive schema using a relative $id 84s 1..2 84s } 84s 1..10 84s ok 85s t/formats.t ............................. 85s # Seeded srand with seed '20251102' from local date. 85s ok 1 - no validation { 85s ok 1 - validate_formats=0 disables format assertion behaviour; annotation is still produced 85s ok 2 - format validation can be turned off in evaluate() 85s 1..2 85s } 85s ok 2 - simple validation { 85s ok 1 - non-string values are valid, and produce an annotation 85s ok 2 - simple success 85s ok 3 - simple failure 85s ok 4 - format_validation defaults to false 85s ok 5 - format validation can be turned on in evaluate() 85s ok 6 - ...but the value is still false on the object 85s 1..6 85s } 85s ok 3 - override a format sub { 85s ok 1 - check syntax of override to existing format via constructor 85s ok 2 - check syntax of override format name to existing format via setter 85s ok 3 - check syntax of override definition value to existing format via setter 85s ok 4 - type is required if passing a hashref 85s ok 5 - cannot override a core format to support a different data type 85s ok 6 - can override a core format definition, as long as it uses the same type 85s ok 7 - check syntax of implementation for a new format 85s ok 8 - check syntax of implementation when adding an override to existing format 85s ok 9 - check syntax of implementation when adding a new format 85s ok 10 - swapping out format implementation turns success into failure; wrong types are still valid 85s ok 11 - can create a custom format definition to use a different type 85s 1..11 85s } 85s ok 4 - toggle validate_formats after adding schema { 85s ok 1 - assertion behaviour is off initially 85s ok 2 - assertion behaviour can be enabled later with an already-loaded schema 85s ok 3 - valid assertion behaviour does not die 85s ok 4 - a schema document can be used with another evaluator with assertion behaviour 85s ok 5 - valid assertion behaviour does not die 85s 1..5 85s } 85s ok 5 - custom metaschemas { 85s ok 1 - custom metaschema using format-assertion=false validates formats 85s ok 2 - custom metaschema using format-assertion=true validates formats 85s 1..2 85s } 85s ok 6 - core formats added after draft7 { 85s ok 1 - duration is not implemented in draft7 85s ok 2 - uuid is not implemented in draft7 85s 1..2 85s } 85s ok 7 - unimplemented core formats { 85s ok 1 - draft4 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 85s ok 2 - draft6 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 85s ok 3 - draft7 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 85s ok 4 - draft2019-09 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 85s ok 5 - draft2020-12 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 85s ok 6 - draft2020-12 with Format-Assertion vocabulary: error when using a core format that is unimplemented 85s ok 7 - draft2020-12 with Format-Assertion vocabulary: error is seen even when containing subschema would be true, and evaluation is short-circuited 85s ok 8 - unimplemented core format can have a custom definition provided 85s 1..8 85s } 85s ok 8 - unknown custom formats { 85s ok 1 - draft4: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure 85s ok 2 - draft6: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure 85s ok 3 - draft7: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure 85s ok 4 - draft2019-09: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure; annotation is still produced 85s ok 5 - draft2020-12: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure; annotation is still produced 85s ok 6 - draft2020-12: for format validation with the Format-Assertion vocabulary, no errors during traversal when using an unknown custom format 85s ok 7 - draft2020-12: for format validation with the Format-Assertion vocabulary, unrecognized custom formats are detected at evaluation time 85s ok 8 - ...but this error can be avoided if the keyword is never evaluated 85s 1..8 85s } 85s ok 9 - format: invalid base type(s) { 85s ok 1 - integer is not a valid base type for a format validation 85s ok 2 - integer, string is not a valid base type for a format validation 85s 1..2 85s } 85s ok 10 - format: pure_integer { 85s ok 1 - pure_integer format with type 85s ok 2 - pure_integer format without type 85s 1..2 85s } 85s ok 11 - formats supporting multiple core types { 85s ok 1 - int64 format without type - accepts both numbers and strings 85s ok 2 - int64 format without type - accepts both numbers and strings 85s 1..2 85s } 85s ok 12 - stringy numbers with a numeric format { 85s ok 1 - FormatAnnotation+validate_formats: strings that look like numbers can be validated against a numeric format when stringy_numbers=1 85s ok 2 - FormatAssertion: strings that look like numbers can be validated against a numeric format when stringy_numbers=1 85s 1..2 85s } 85s ok 13 - annotation formats using implementations that rely on optional dependencies { 85s ok 1 - can annotate a non-string against formats without their optional dependencies, without dying 85s 1..1 85s } 85s ok 14 - assertion formats using implementations that rely on optional dependencies { 85s ok 1 - draft4: for format validation with the Format-Annotation vocabulary, can assert a non-string against formats without their optional dependencies, without dying 85s ok 2 - draft4: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 85s ok 3 - draft6: for format validation with the Format-Annotation vocabulary, can assert a non-string against formats without their optional dependencies, without dying 85s ok 4 - draft6: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 85s ok 5 - draft7: for format validation with the Format-Annotation vocabulary, can assert a non-string against formats without their optional dependencies, without dying 85s ok 6 - draft7: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 85s 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 85s ok 8 - draft2019-09: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 85s 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 85s ok 10 - draft2020-12: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 85s ok 11 - draft2020-12: for format validation with the Format-Assertion vocabulary, no errors during traversal when using an unknown custom format 85s ok 12 - ...but we do warn for the missing module 85s ok 13 - draft2020-12: for Format-Asertion vocabulary, we immediately abort when encountering a format that throws an exception 85s 1..13 85s } 85s 1..14 85s ok 85s t/invalid-schemas.t ..................... 85s # Seeded srand with seed '20251102' from local date. 85s # 85s # AUTHOR_TESTING: 85s # AUTOMATED_TESTING: 1 85s # EXTENDED_TESTING: 85s # NO_TODO: 85s # TEST_DIR: 85s # NO_SHORT_CIRCUIT: 85s # 85s # Using JSON decoder: Cpanel::JSON::XS 4.39 85s # 85s # running tests in /tmp/autopkgtest.bokkcv/autopkgtest_tmp/smokeLRh8t9/t/invalid-schemas against draft2019-09... 85s # 85s ok 1 - invalid-input.json: "invalid user input: type (string)" - "graceful error from 'type' (string)" { 85s # result: { 85s # "errors": [ 85s # { 85s # "error": "type value is not a string", 85s # "instanceLocation": "", 85s # "keywordLocation": "/type" 85s # } 85s # ], 85s # "valid": false 85s # } 85s # short-circuited result: { 85s # "errors": [ 85s # { 85s # "error": "type value is not a string", 85s # "instanceLocation": "", 85s # "keywordLocation": "/type" 85s # } 85s # ], 85s # "valid": false 85s # } 85s ok 1 - test passes: data is valid: false 85s 1..1 85s } 85s ok 2 - invalid-input.json: "invalid user input: type (array)" - "graceful error from 'type' (array)" { 85s # result: { 85s # "errors": [ 85s # { 85s # "error": "unrecognized type \"\"", 85s # "instanceLocation": "", 85s # "keywordLocation": "/type" 85s # } 85s # ], 85s # "valid": false 85s # } 85s # short-circuited result: { 85s # "errors": [ 85s # { 85s # "error": "unrecognized type \"\"", 85s # "instanceLocation": "", 85s # "keywordLocation": "/type" 85s # } 85s # ], 85s # "valid": false 85s # } 85s ok 1 - test passes: data is valid: false 85s 1..1 85s } 85s # 85s ok 3 - ref.json: "invalid $ref: unencoded characters" - "unencoded characters in $ref uri" { 85s # result: { 85s # "errors": [ 85s # { 85s # "error": "$ref value is not a valid URI-reference", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$defs/foo/$ref" 85s # } 85s # ], 85s # "valid": false 85s # } 85s # short-circuited result: { 85s # "errors": [ 85s # { 85s # "error": "$ref value is not a valid URI-reference", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$defs/foo/$ref" 85s # } 85s # ], 85s # "valid": false 85s # } 85s ok 1 - test passes: data is valid: false 85s 1..1 85s } 85s ok 4 - ref.json: "invalid $ref: non-ascii characters" - "non-ascii characters in $ref uri" { 85s # result: { 85s # "errors": [ 85s # { 85s # "error": "$ref value is not a valid URI-reference", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$defs/foo/$ref" 85s # } 85s # ], 85s # "valid": false 85s # } 85s # short-circuited result: { 85s # "errors": [ 85s # { 85s # "error": "$ref value is not a valid URI-reference", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$defs/foo/$ref" 85s # } 85s # ], 85s # "valid": false 85s # } 85s ok 1 - test passes: data is valid: false 85s 1..1 85s } 85s # 85s ok 5 - vocabulary.json: "invalid $vocabulary: need boolean values" - "an invalid $vocabulary value (value should be a boolean)" { 85s # result: { 85s # "errors": [ 85s # { 85s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 85s # } 85s # ], 85s # "valid": false 85s # } 85s # short-circuited result: { 85s # "errors": [ 85s # { 85s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 85s # } 85s # ], 85s # "valid": false 85s # } 85s ok 1 - test passes: data is valid: false 85s 1..1 85s } 85s ok 6 - vocabulary.json: "invalid $vocabulary: uri must not have unencoded characters" - "unencoded characters in $vocabulary uri" { 85s # result: { 85s # "errors": [ 85s # { 85s # "error": "\"http://foo^bar/path\" is not a valid URI", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 85s # } 85s # ], 85s # "valid": false 85s # } 85s # short-circuited result: { 85s # "errors": [ 85s # { 85s # "error": "\"http://foo^bar/path\" is not a valid URI", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 85s # } 85s # ], 85s # "valid": false 85s # } 85s ok 1 - test passes: data is valid: false 85s 1..1 85s } 85s ok 7 - vocabulary.json: "invalid $vocabulary: non-ascii characters in uri" - "non-ascii characters in $vocabulary uri" { 85s # result: { 85s # "errors": [ 85s # { 85s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 85s # } 85s # ], 85s # "valid": false 85s # } 85s # short-circuited result: { 85s # "errors": [ 85s # { 85s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 85s # } 85s # ], 85s # "valid": false 85s # } 85s ok 1 - test passes: data is valid: false 85s 1..1 85s } 85s ok 8 - vocabulary.json: "invalid $vocabulary: missing scheme" - "$vocabulary uri is missing a scheme" { 85s # result: { 85s # "errors": [ 85s # { 85s # "error": "\"foo.com\" is not a valid URI", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$vocabulary/foo.com" 85s # } 85s # ], 85s # "valid": false 85s # } 85s # short-circuited result: { 85s # "errors": [ 85s # { 85s # "error": "\"foo.com\" is not a valid URI", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$vocabulary/foo.com" 85s # } 85s # ], 85s # "valid": false 85s # } 85s ok 1 - test passes: data is valid: false 85s 1..1 85s } 85s # 85s # generated with: Test::JSON::Schema::Acceptance 1.029 85s # specification version: draft2019-09 85s # using custom test directory: t/invalid-schemas 85s # optional tests included: no 85s # 85s # filename pass todo-fail fail 85s # --------------------------------------------------------------- 85s # invalid-input.json 2 0 0 85s # ref.json 2 0 0 85s # vocabulary.json 4 0 0 85s # --------------------------------------------------------------- 85s # TOTAL 8 0 0 85s # 85s # Congratulations, all non-optional tests are passing! 85s # 85s ok 9 - no leaks in the main evaluator object 85s ok 10 - no leaks in the short-circuiting evaluator object 85s # 85s # AUTHOR_TESTING: 85s # AUTOMATED_TESTING: 1 85s # EXTENDED_TESTING: 85s # NO_TODO: 85s # TEST_DIR: 85s # NO_SHORT_CIRCUIT: 85s # 85s # Using JSON decoder: Cpanel::JSON::XS 4.39 85s # 85s # running tests in /tmp/autopkgtest.bokkcv/autopkgtest_tmp/smokeLRh8t9/t/invalid-schemas against draft2020-12... 85s # 85s ok 11 - invalid-input.json: "invalid user input: type (string)" - "graceful error from 'type' (string)" { 85s # result: { 85s # "errors": [ 85s # { 85s # "error": "type value is not a string", 85s # "instanceLocation": "", 85s # "keywordLocation": "/type" 85s # } 85s # ], 85s # "valid": false 85s # } 85s # short-circuited result: { 85s # "errors": [ 85s # { 85s # "error": "type value is not a string", 85s # "instanceLocation": "", 85s # "keywordLocation": "/type" 85s # } 85s # ], 85s # "valid": false 85s # } 85s ok 1 - test passes: data is valid: false 85s 1..1 85s } 85s ok 12 - invalid-input.json: "invalid user input: type (array)" - "graceful error from 'type' (array)" { 85s # result: { 85s # "errors": [ 85s # { 85s # "error": "unrecognized type \"\"", 85s # "instanceLocation": "", 85s # "keywordLocation": "/type" 85s # } 85s # ], 85s # "valid": false 85s # } 85s # short-circuited result: { 85s # "errors": [ 85s # { 85s # "error": "unrecognized type \"\"", 85s # "instanceLocation": "", 85s # "keywordLocation": "/type" 85s # } 85s # ], 85s # "valid": false 85s # } 85s ok 1 - test passes: data is valid: false 85s 1..1 85s } 85s # 85s ok 13 - ref.json: "invalid $ref: unencoded characters" - "unencoded characters in $ref uri" { 85s # result: { 85s # "errors": [ 85s # { 85s # "error": "$ref value is not a valid URI-reference", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$defs/foo/$ref" 85s # } 85s # ], 85s # "valid": false 85s # } 85s # short-circuited result: { 85s # "errors": [ 85s # { 85s # "error": "$ref value is not a valid URI-reference", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$defs/foo/$ref" 85s # } 85s # ], 85s # "valid": false 85s # } 85s ok 1 - test passes: data is valid: false 85s 1..1 85s } 85s ok 14 - ref.json: "invalid $ref: non-ascii characters" - "non-ascii characters in $ref uri" { 85s # result: { 85s # "errors": [ 85s # { 85s # "error": "$ref value is not a valid URI-reference", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$defs/foo/$ref" 85s # } 85s # ], 85s # "valid": false 85s # } 85s # short-circuited result: { 85s # "errors": [ 85s # { 85s # "error": "$ref value is not a valid URI-reference", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$defs/foo/$ref" 85s # } 85s # ], 85s # "valid": false 85s # } 85s ok 1 - test passes: data is valid: false 85s 1..1 85s } 85s # 85s ok 15 - vocabulary.json: "invalid $vocabulary: need boolean values" - "an invalid $vocabulary value (value should be a boolean)" { 85s # result: { 85s # "errors": [ 85s # { 85s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 85s # } 85s # ], 85s # "valid": false 85s # } 85s # short-circuited result: { 85s # "errors": [ 85s # { 85s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 85s # } 85s # ], 85s # "valid": false 85s # } 85s ok 1 - test passes: data is valid: false 85s 1..1 85s } 85s ok 16 - vocabulary.json: "invalid $vocabulary: uri must not have unencoded characters" - "unencoded characters in $vocabulary uri" { 85s # result: { 85s # "errors": [ 85s # { 85s # "error": "\"http://foo^bar/path\" is not a valid URI", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 85s # } 85s # ], 85s # "valid": false 85s # } 85s # short-circuited result: { 85s # "errors": [ 85s # { 85s # "error": "\"http://foo^bar/path\" is not a valid URI", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 85s # } 85s # ], 85s # "valid": false 85s # } 85s ok 1 - test passes: data is valid: false 85s 1..1 85s } 85s ok 17 - vocabulary.json: "invalid $vocabulary: non-ascii characters in uri" - "non-ascii characters in $vocabulary uri" { 85s # result: { 85s # "errors": [ 85s # { 85s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 85s # } 85s # ], 85s # "valid": false 85s # } 85s # short-circuited result: { 85s # "errors": [ 85s # { 85s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 85s # } 85s # ], 85s # "valid": false 85s # } 85s ok 1 - test passes: data is valid: false 85s 1..1 85s } 85s ok 18 - vocabulary.json: "invalid $vocabulary: missing scheme" - "$vocabulary uri is missing a scheme" { 85s # result: { 85s # "errors": [ 85s # { 85s # "error": "\"foo.com\" is not a valid URI", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$vocabulary/foo.com" 85s # } 85s # ], 85s # "valid": false 85s # } 85s # short-circuited result: { 85s # "errors": [ 85s # { 85s # "error": "\"foo.com\" is not a valid URI", 85s # "instanceLocation": "", 85s # "keywordLocation": "/$vocabulary/foo.com" 85s # } 85s # ], 85s # "valid": false 85s # } 85s ok 1 - test passes: data is valid: false 85s 1..1 85s } 85s # 85s # generated with: Test::JSON::Schema::Acceptance 1.029 85s # specification version: draft2020-12 85s # using custom test directory: t/invalid-schemas 85s # optional tests included: no 85s # 85s # filename pass todo-fail fail 85s # --------------------------------------------------------------- 85s # invalid-input.json 2 0 0 85s # ref.json 2 0 0 85s # vocabulary.json 4 0 0 85s # --------------------------------------------------------------- 85s # TOTAL 8 0 0 85s # 85s # Congratulations, all non-optional tests are passing! 85s # 85s ok 19 - no leaks in the main evaluator object 85s ok 20 - no leaks in the short-circuiting evaluator object 85s 1..20 85s ok 85s t/max_traversal_depth.t ................. 85s # Seeded srand with seed '20251102' from local date. 85s ok 1 - evaluation is halted when traversal gets too deep 85s ok 2 - evaluation is halted when an instance location is evaluated against the same schema location a second time 85s ok 3 - the seen counter does not confuse URI paths and fragments: /properties/foo vs \#/properties/foo 85s ok 4 - the seen counter does not confuse two subschemas that both apply the same definition to the same instance location 85s 1..4 85s ok 85s t/multipleOf.t .......................... 85s # Seeded srand with seed '20251102' from local date. 85s ok 1 - multipleOf, native types { 85s ok 1 - 4 is a multiple of 2 85s ok 2 - 4 is a multiple of 1 85s ok 3 - 4 is not a multiple of 3 85s ok 4 - 4.5 is a multiple of 1.5 85s ok 5 - 4.5 is not a multiple of 1 85s ok 6 - 4.5 is not a multiple of 3 85s ok 7 - 4 is a multiple of 2 85s ok 8 - 4 is not a multiple of 2.5 85s ok 9 - 5 is a multiple of 2.5 85s ok 10 - 4.5 is a multiple of 2.25 85s ok 11 - 4.5 is not a multiple of 2.5 85s ok 12 - 4.5 is not a multiple of 2 85s ok 13 - -9223372036854775808 is a multiple of 0.5 85s ok 14 - 9223372036854775807 is a multiple of 0.5 85s ok 15 - 18446744073709551615 is a multiple of 0.5 85s 1..15 85s } 85s ok 2 - multipleOf, data is a bignum { 85s ok 1 - 4 is a multiple of 2 85s ok 2 - 4 is a multiple of 1 85s ok 3 - 4 is not a multiple of 3 85s ok 4 - 4.5 is a multiple of 1.5 85s ok 5 - 4.5 is not a multiple of 1 85s ok 6 - 4.5 is not a multiple of 3 85s ok 7 - 4 is a multiple of 2 85s ok 8 - 4 is not a multiple of 2.5 85s ok 9 - 5 is a multiple of 2.5 85s ok 10 - 4.5 is a multiple of 2.25 85s ok 11 - 4.5 is not a multiple of 2.5 85s ok 12 - 4.5 is not a multiple of 2 85s ok 13 - -9223372036854775808 is a multiple of 0.5 85s ok 14 - 9223372036854775807 is a multiple of 0.5 85s ok 15 - 18446744073709551615 is a multiple of 0.5 85s 1..15 85s } 85s ok 3 - multipleOf, multipleOf is a bignum { 85s ok 1 - 4 is a multiple of 2 85s ok 2 - 4 is a multiple of 1 85s ok 3 - 4 is not a multiple of 3 85s ok 4 - 4.5 is a multiple of 1.5 85s ok 5 - 4.5 is not a multiple of 1 85s ok 6 - 4.5 is not a multiple of 3 85s ok 7 - 4 is a multiple of 2 85s ok 8 - 4 is not a multiple of 2.5 85s ok 9 - 5 is a multiple of 2.5 85s ok 10 - 4.5 is a multiple of 2.25 85s ok 11 - 4.5 is not a multiple of 2.5 85s ok 12 - 4.5 is not a multiple of 2 85s ok 13 - -9223372036854775808 is a multiple of 0.5 85s ok 14 - 9223372036854775807 is a multiple of 0.5 85s ok 15 - 18446744073709551615 is a multiple of 0.5 85s 1..15 85s } 85s ok 4 - multipleOf, data and multipleOf are bignums { 85s ok 1 - 4 is a multiple of 2 85s ok 2 - 4 is a multiple of 1 85s ok 3 - 4 is not a multiple of 3 85s ok 4 - 4.5 is a multiple of 1.5 85s ok 5 - 4.5 is not a multiple of 1 85s ok 6 - 4.5 is not a multiple of 3 85s ok 7 - 4 is a multiple of 2 85s ok 8 - 4 is not a multiple of 2.5 85s ok 9 - 5 is a multiple of 2.5 85s ok 10 - 4.5 is a multiple of 2.25 85s ok 11 - 4.5 is not a multiple of 2.5 85s ok 12 - 4.5 is not a multiple of 2 85s ok 13 - -9223372036854775808 is a multiple of 0.5 85s ok 14 - 9223372036854775807 is a multiple of 0.5 85s ok 15 - 18446744073709551615 is a multiple of 0.5 85s 1..15 85s } 85s 1..4 85s ok 86s t/pattern.t ............................. 86s # Seeded srand with seed '20251102' from local date. 86s ok 1 - unchanged LATIN SMALL LETTER E WITH ACUTE does not match the ascii range [a-z] 86s ok 2 - unchanged LATIN SMALL LETTER E WITH ACUTE does match the "word" character class, because unicode semantics are used for matching 86s ok 3 - upgraded LATIN SMALL LETTER E WITH ACUTE does not match the ascii range [a-z] 86s ok 4 - upgraded LATIN SMALL LETTER E WITH ACUTE does match the "word" character class, because unicode semantics are used for matching 86s ok 5 - downgraded LATIN SMALL LETTER E WITH ACUTE does not match the ascii range [a-z] 86s ok 6 - downgraded LATIN SMALL LETTER E WITH ACUTE does match the "word" character class, because unicode semantics are used for matching 86s ok 7 - empty pattern { 86s ok 1 - empty pattern in "pattern" will correctly match 86s ok 2 - empty pattern in "patternProperties" will correctly match 86s 1..2 86s } 86s 1..7 86s ok 86s t/ref.t ................................. 86s # Seeded srand with seed '20251102' from local date. 86s ok 1 - local JSON pointer { 86s ok 1 - can follow local $ref to a true schema 86s ok 2 - can follow local $ref to a false schema 86s ok 3 - got error for unresolvable ref 86s ok 4 - no exception 86s 1..4 86s } 86s ok 2 - fragment with URI-escaped and JSON Pointer-escaped characters { 86s ok 1 - can follow $ref with escaped components 86s 1..1 86s } 86s ok 3 - local anchor { 86s ok 1 - can follow local $ref to an $anchor to a true schema 86s ok 2 - can follow local $ref to an $anchor to a false schema 86s ok 3 - got error for unresolvable ref 86s ok 4 - no exception 86s 1..4 86s } 86s ok 4 - $id with an empty fragment { 86s ok 1 - $id with empty fragment can be found by $ref that did not include it; fragment not included in error either 86s 1..1 86s } 86s ok 5 - $recursiveRef without nesting behaves like $ref { 86s ok 1 - $recursiveRef without nested $recursiveAnchor behaves like $ref 86s 1..1 86s } 86s ok 6 - $recursiveRef without $recursiveAnchor behaves like $ref { 86s ok 1 - $recursiveRef without $recursiveAnchor behaves like $ref 86s 1..1 86s } 86s ok 7 - $recursiveAnchor must be at a schema resource root { 86s ok 1 - $recursiveAnchor can only appear at a schema resource root 86s ok 2 - schema now valid when an $id is added 86s ok 3 - $recursiveAnchor can only appear at a schema resource root 86s ok 4 - properly detecting a bad $recursiveAnchor even before passing through a $ref 86s 1..4 86s } 86s ok 8 - $recursiveAnchor and $recursiveRef - standard usecases { 86s ok 1 - validation requires the override that is not in scope 86s ok 2 - $recursiveRef requires a $recursiveAnchor that does not exist 86s ok 3 - $recursiveRef with both $recursiveAnchors in scope 86s 1..3 86s } 86s ok 9 - $recursiveRef without $recursiveAnchor { 86s ok 1 - $ref - one level recursion 86s ok 2 - $recursiveRef with no $recursiveAnchor in scope has the same outcome 86s 1..2 86s } 86s ok 10 - $recursiveAnchor in our dynamic scope, but not in the target schema { 86s ok 1 - $recursiveAnchor does not exist in the target schema - local recursion only, so integers match 86s ok 2 - $recursiveAnchor does not exist in the target schema - no recursion 86s ok 3 - $recursiveAnchor does not exist in the target schema - local recursion only 86s 1..3 86s } 86s ok 11 - $dynamicRef without nesting behaves like $ref { 86s ok 1 - $dynamicRef without nested $dynamicAnchor behaves like $ref 86s 1..1 86s } 86s ok 12 - $recursiveRef without $dynamicAnchor behaves like $ref { 86s ok 1 - $dynamicRef without $dynamicAnchor behaves like $ref 86s 1..1 86s } 86s ok 13 - $dynamicAnchor and $dynamicRef - standard usecases { 86s ok 1 - validation requires the override that is not in scope 86s ok 2 - $dynamicRef requires a $dynamicAnchor that does not exist 86s ok 3 - $dynamicRef must use a URI containing the dynamic anchor fragment 86s ok 4 - there is no outer $dynamicAnchor in scope to recurse to 86s ok 5 - we have an outer $dynamicAnchor, and are using the fragment URI, but we used $ref rather than $dynamicRef 86s ok 6 - there is an outer $dynamicAnchor in scope to recurse to, but $dynamicRef must use a URI containing the dynamic anchor fragment 86s ok 7 - now everything is in place to recurse to the base 86s ok 8 - there is no $dynamicAnchor at the original target, and no anchor used in the target URI 86s 1..8 86s } 86s ok 14 - $dynamicRef to $dynamicAnchor not directly in the evaluation path { 86s ok 1 - second dynamic anchor is not in the evaluation path, but we found it via dynamic scope - type does not match 86s ok 2 - regular $anchor in dynamic scope should not be used by $dynamicRef 86s ok 3 - some other $dynamicAnchor in dynamic scope should not be used by $dynamicRef 86s ok 4 - second dynamic anchor is not in the evaluation path, but we found it via dynamic scope - type matches 86s ok 5 - the first dynamic scope is set by document uri, not just the $id keyword 86s 1..5 86s } 86s ok 15 - after leaving a dynamic scope, it should not be used by a $dynamicRef { 86s ok 1 - first_scope is no longer in scope, so it is not used by $dynamicRef 86s 1..1 86s } 86s ok 16 - anchors do not match { 86s ok 1 - $dynamicRef goes to enhanced schema 86s ok 2 - $dynamicRef -> $dynamicAnchor -> $anchor is a no go: we stay at the original schema 86s 1..2 86s } 86s ok 17 - reference to a non-schema location { 86s ok 1 - $ref to a non-schema is not permitted 86s ok 2 - $dynamicRef to a non-schema is not permitted 86s ok 3 - $recursiveRef to a non-schema is not permitted 86s ok 4 - $schema to a non-schema is not permitted 86s 1..4 86s } 86s ok 18 - evaluate at a non-schema location { 86s ok 1 - evaluating at a non-schema location is not permitted 86s 1..1 86s } 86s 1..18 86s ok 86s t/result-object.t ....................... 86s # Seeded srand with seed '20251102' from local date. 86s ok 1 - output_format defaults to basic 86s ok 2 - Result object gets the output_format from the evaluator 86s ok 3 - basic format includes all errors linearly 86s ok 4 - flag format only includes the valid property 86s ok 5 - terse format omits errors from redundant applicator keywords 86s ok 6 - basic format includes all errors linearly 86s ok 7 - terse format does not omit these crucial errors 86s ok 8 - strict_basic { 86s ok 1 - strict_basic turns json pointers into URIs, including uri escapes 86s 1..1 86s } 86s ok 9 - AND two result objects together { 86s ok 1 - ANDing true and false results = invalid, but errors and annotations both preserved 86s ok 2 - ANDing two true results = valid 86s ok 3 - ANDing two false results = invalid 86s ok 4 - only Result objects can be processed 86s ok 5 - ANDing a result with itself is a no-op 86s 1..5 86s } 86s ok 10 - annotations { 86s ok 1 - by default, annotations are included in the formatted output 86s ok 2 - but inclusion can be disabled 86s 1..2 86s } 86s ok 11 - data_only { 86s ok 1 - data_only format outputs a string of data locations only, with duplicates removed 86s ok 2 - data_only format uses keyword locations when result came from traverse 86s 1..2 86s } 86s ok 12 - construction errors { 86s ok 1 - valid results must not have errors 86s ok 2 - invalid results must have errors 86s ok 3 - no errors when valid is true and errors is empty 86s ok 4 - no errors when valid is false and errors is not empty 86s 1..4 86s } 86s 1..12 86s ok 87s t/serialization.t ....................... 87s # Seeded srand with seed '20251102' from local date. 87s ok 1 - evaluated against an empty schema 87s ok 2 - evaluate data against schema with custom dialect; format and unknown keywords are collected as annotations 87s ok 3 - evaluate data against schema with custom dialect; format-annotation is used 87s ok 4 - frozen object contains all the right keys 87s ok 5 - thawed object contains all the right keys 87s ok 6 - evaluate again against an empty schema 87s ok 7 - in thawed object, evaluate data against schema with custom dialect; format and unknown keywords are collected as annotations 87s ok 8 - evaluate again against an empty schema 87s ok 9 - core vocabulary_class for a different spec version works in a thawed object 87s ok 10 - format-assertion vocabulary_class works in a thawed object 87s ok 11 - metaschema_vocabulary_classes works in a thawed object 87s ok 12 - media_type works in a thawed object 87s ok 13 - encoding works in a thawed object 87s # Seeded srand with seed '20251102' from local date. 87s ok 14 - thaw object in a separate process { 87s ok 1 - thawed object in a new process contains all the right keys 87s ok 2 - in thawed object, evaluate data against schema with custom dialect; format and unknown keywords are collected as annotations 87s ok 3 - evaluate data against schema with custom dialect; format-assertion is used 87s 1..3 87s } 87s ok 15 - child process finished successfully 87s 1..15 87s ok 88s t/specification_version.t ............... 88s # Seeded srand with seed '20251102' from local date. 88s ok 1 - unrecognized specification_version 88s ok 2 - specification aliases { 88s ok 1 - 2020-12 is an alias for draft2020-12 88s ok 2 - 2019-09 is an alias for draft2019-09 88s ok 3 - 7 is an alias for draft7 88s 1..3 88s } 88s ok 3 - $ref and older specification versions { 88s ok 1 - $schema and $ref cannot be used together, when $schema is too old 88s 1..1 88s } 88s ok 4 - <= draft7: $ref in combination with any other keyword causes the other keywords to be ignored { 88s ok 1 - keywords adjacent to $ref are not evaluated 88s 1..1 88s } 88s ok 5 - $ref adjacent to a path used in a $ref { 88s ok 1 - the presence of $ref also blocks the use of other $refs to adjacent locations 88s 1..1 88s } 88s ok 6 - $defs support { 88s ok 1 - $defs is not recognized in <= draft7 88s ok 2 - $defs is supported in > draft7 88s 1..2 88s } 88s ok 7 - definitions support { 88s ok 1 - definitions is not recognized in >= draft2019-09 88s ok 2 - warned when using no-longer-supported keyword 88s ok 3 - definitions is supported in <= draft7 88s 1..3 88s } 88s ok 8 - dependencies, dependentRequired, dependentSchemas { 88s ok 1 - dependencies is not recognized in >= draft2019-09 88s ok 2 - warned when using no-longer-supported keyword 88s ok 3 - dependentRequired is supported in >= draft2019-09 88s ok 4 - dependentSchemas is supported in >= draft2019-09 88s ok 5 - dependencies is supported in <= draft7 88s ok 6 - dependentRequired is not recognized in <= draft7 88s ok 7 - dependentSchemas is not recognized in <= draft7 88s 1..7 88s } 88s ok 9 - prefixItems, items and additionalItems { 88s ok 1 - prefixitems+items works when specification_version >= draft2020-12 88s ok 2 - array form of items not supported when specification_version >= draft2020-12 88s ok 3 - additionalitems not recognized when specification_version >= draft2020-12 88s ok 4 - warned when using no-longer-supported keyword 88s ok 5 - prefixitems not supported when specification_version specifies other than draft2020-12 88s ok 6 - array-based items in >= draft2020-12 88s ok 7 - prefixItems + additionalItems 88s ok 8 - warned when using no-longer-supported keyword 88s ok 9 - prefixItems + schema-based items 88s ok 10 - schema-based items + additionalItems, failure case 88s ok 11 - warned when using no-longer-supported keyword 88s ok 12 - schema-based items + additionalItems, passing case 88s ok 13 - warned when using no-longer-supported keyword 88s 1..13 88s } 88s 1..9 88s ok 88s t/strict.t .............................. 88s # Seeded srand with seed '20251102' from local date. 88s ok 1 - strict defaults to false 88s ok 2 - by default, unknown keywords are allowed in evaluate() 88s ok 3 - strict mode disallows unknown keywords during evaluation via a config override 88s ok 4 - by default, unknown keywords are allowed in validate_schema() 88s ok 5 - strict mode disallows unknown keywords in validate_schema() via a config override 88s ok 6 - strict mode disallows unknown keywords during evaluation, even if the document was already traversed 88s ok 7 - strict mode disallows unknown keywords in the schema data passed to validate_schema() 88s ok 8 - strict mode disallows unknown keywords during traverse 88s ok 9 - strict mode only detected one property this time - bloop is evaluated 88s ok 10 - strict mode detects unknown keywords using draft7 88s 1..10 88s ok 88s t/stringy-numbers.t ..................... 88s # Seeded srand with seed '20251102' from local date. 88s # stringy_numbers = 0 88s ok 1 - strings cannot be used in place of numbers in schema for multipleOf 88s ok 2 - strings cannot be used in place of numbers in schema for maximum 88s ok 3 - strings cannot be used in place of numbers in schema for exclusiveMaximum 88s ok 4 - strings cannot be used in place of numbers in schema for minimum 88s ok 5 - strings cannot be used in place of numbers in schema for exclusiveMinimum 88s ok 6 - strings that do not look like numbers are never valid as numbers 88s ok 7 - by default "type": "string" does not accept numbers 88s ok 8 - real numbers are always evaluated 88s ok 9 - by default, stringy numbers are not evaluated by numeric keywords 88s ok 10 - data was not mutated 88s ok 11 - by default, stringy numbers are not the same as numbers using comparison keywords 88s ok 12 - data was not mutated 88s # stringy_numbers = 1 88s ok 13 - strings cannot be used in place of numbers in schema for multipleOf 88s ok 14 - strings cannot be used in place of numbers in schema for maximum 88s ok 15 - strings cannot be used in place of numbers in schema for exclusiveMaximum 88s ok 16 - strings cannot be used in place of numbers in schema for minimum 88s ok 17 - strings cannot be used in place of numbers in schema for exclusiveMinimum 88s ok 18 - strings that do not look like numbers are never valid as numbers 88s ok 19 - using stringy numbers, numeric strings are treated as numbers but are still not always integers 88s ok 20 - real numbers are always evaluated 88s ok 21 - with the config enabled, stringy numbers are treated as numbers by numeric keywords 88s ok 22 - data was not mutated 88s ok 23 - with the config enabled, stringy numbers are the same as numbers using comparison keywords 88s ok 24 - data was not mutated 88s 1..24 88s ok 89s t/traverse.t ............................ 89s # Seeded srand with seed '20251102' from local date. 89s ok 1 - traversal with callbacks { 89s ok 1 - errors encountered during traversal are returned 89s ok 2 - callback for erroneous keyword was not called 89s ok 3 - extracted all the real $refs out of the schema, with locations and canonical targets 89s ok 4 - identified all subschemas 89s 1..4 89s } 89s ok 2 - errors when parsing $schema keyword { 89s ok 1 - $schema is not a string 89s ok 2 - $schema is not a URI 89s 1..2 89s } 89s ok 3 - default metaschema { 89s ok 1 - dialect is properly determined 89s ok 2 - error within $defs is found, showing both Core and Applicator vocabularies are used 89s 1..2 89s } 89s ok 4 - traversing a dialect with different core keywords { 89s ok 1 - dialect changes at root, with $id - dialect is switched in time to get a new keyword list for the core vocabulary 89s ok 2 - other $state information is correct 89s ok 3 - no errors when parsing this schema 89s ok 4 - switched dialect in time to extract all identifiers, from root and definition 89s ok 5 - dialect changes at root, no $id - dialect is switched in time to get a new keyword list for the core vocabulary 89s ok 6 - dialect changes below root - dialect is switched in time to get a new keyword list for the core vocabulary 89s 1..6 89s } 89s ok 5 - $schema without an $id, below the root { 89s ok 1 - $schema cannot exist without an $id, or at the root 89s 1..1 89s } 89s ok 6 - duplicate identifiers { 89s ok 1 - detected colliding $ids within a single schema 89s ok 2 - two anchors with different base uris are acceptable 89s ok 3 - detected colliding $anchors within a single schema 89s 1..3 89s } 89s ok 7 - $anchor without $id { 89s ok 1 - found anchor at root, without an $id to pre-populate the identifiers hash 89s ok 2 - found anchor within schema, without an $id to pre-populate the identifiers hash 89s 1..2 89s } 89s ok 8 - traverse with overridden specification_version { 89s ok 1 - $state is correct with no $schema keyword, no overrides 89s ok 2 - $state is correct with a $schema keyword, no overrides 89s ok 3 - $state is correct with no $schema keyword, and an overridden specification_version 89s ok 4 - $state is correct with a $schema keyword, and an overridden specification_version 89s 1..4 89s } 89s ok 9 - traverse with overridden metaschema_uri { 89s ok 1 - metaschema_uri is not a known uri 89s ok 2 - boolean schema: metaschema_uri is overridden with a bad schema: same errors are returned 89s ok 3 - object schema: metaschema_uri is overridden with a bad schema: same errors are returned 89s ok 4 - metaschema_uri is overridden with a bad schema and there is a traversal path: errors contain the right locations 89s ok 5 - determined specification version and vocabularies to use for this schema from override 89s ok 6 - determined specification version and vocabularies to use for this schema from $schema keyword 89s ok 7 - when $schema keyword is used, custom metaschema_uri is never parsed, so there are no errors 89s 1..7 89s } 89s ok 10 - start traversing below the document root { 89s ok 1 - identified the overridden location of all errors during traverse 89s ok 2 - identifiers are correctly extracted when traversing below the document root 89s ok 3 - identifiers are correctly extracted when traversing below the document root, with anchor 89s 1..3 89s } 89s 1..10 89s ok 89s t/type.t ................................ 89s # Seeded srand with seed '20251102' from local date. 89s ok 1 - inflated data, type: array { 89s ok 1 - is_type("array", []) is true 89s ok 2 - get_type([]) = array 89s ok 3 - is_type("boolean", []) is false 89s ok 4 - is_type("integer", []) is false 89s ok 5 - is_type("null", []) is false 89s ok 6 - is_type("number", []) is false 89s ok 7 - is_type("object", []) is false 89s ok 8 - is_type("string", []) is false 89s ok 9 - data is not tampered with while it is tested (not dualvar) 89s ok 10 - is_type("array", [1]) is true 89s ok 11 - get_type([1]) = array 89s ok 12 - is_type("boolean", [1]) is false 89s ok 13 - is_type("integer", [1]) is false 89s ok 14 - is_type("null", [1]) is false 89s ok 15 - is_type("number", [1]) is false 89s ok 16 - is_type("object", [1]) is false 89s ok 17 - is_type("string", [1]) is false 89s ok 18 - data is not tampered with while it is tested (not dualvar) 89s 1..18 89s } 89s ok 2 - inflated data, type: boolean { 89s ok 1 - is_type("boolean", false) is true 89s ok 2 - get_type(false) = boolean 89s ok 3 - is_type("array", false) is false 89s ok 4 - is_type("integer", false) is false 89s ok 5 - is_type("null", false) is false 89s ok 6 - is_type("number", false) is false 89s ok 7 - is_type("object", false) is false 89s ok 8 - is_type("string", false) is false 89s ok 9 - data is not tampered with while it is tested (not dualvar) 89s ok 10 - is_type("boolean", true) is true 89s ok 11 - get_type(true) = boolean 89s ok 12 - is_type("array", true) is false 89s ok 13 - is_type("integer", true) is false 89s ok 14 - is_type("null", true) is false 89s ok 15 - is_type("number", true) is false 89s ok 16 - is_type("object", true) is false 89s ok 17 - is_type("string", true) is false 89s ok 18 - data is not tampered with while it is tested (not dualvar) 89s ok 19 - is_type("boolean", false) is true 89s ok 20 - get_type(false) = boolean 89s ok 21 - is_type("array", false) is false 89s ok 22 - is_type("integer", false) is false 89s ok 23 - is_type("null", false) is false 89s ok 24 - is_type("number", false) is false 89s ok 25 - is_type("object", false) is false 89s ok 26 - is_type("string", false) is false 89s ok 27 - data is not tampered with while it is tested (not dualvar) 89s ok 28 - is_type("boolean", true) is true 89s ok 29 - get_type(true) = boolean 89s ok 30 - is_type("array", true) is false 89s ok 31 - is_type("integer", true) is false 89s ok 32 - is_type("null", true) is false 89s ok 33 - is_type("number", true) is false 89s ok 34 - is_type("object", true) is false 89s ok 35 - is_type("string", true) is false 89s ok 36 - data is not tampered with while it is tested (not dualvar) 89s ok 37 - is_type("boolean", true) is true 89s ok 38 - get_type(true) = boolean 89s ok 39 - is_type("array", true) is false 89s ok 40 - is_type("integer", true) is false 89s ok 41 - is_type("null", true) is false 89s ok 42 - is_type("number", true) is false 89s ok 43 - is_type("object", true) is false 89s ok 44 - is_type("string", true) is false 89s ok 45 - is_type("boolean", false) is true 89s ok 46 - get_type(false) = boolean 89s ok 47 - is_type("array", false) is false 89s ok 48 - is_type("integer", false) is false 89s ok 49 - is_type("null", false) is false 89s ok 50 - is_type("number", false) is false 89s ok 51 - is_type("object", false) is false 89s ok 52 - is_type("string", false) is false 89s 1..52 89s } 89s ok 3 - inflated data, type: integer { 89s ok 1 - is_type("integer", 0) is true 89s ok 2 - is_type("number", 0) is true 89s ok 3 - get_type(0) = integer 89s ok 4 - is_type("array", 0) is false 89s ok 5 - is_type("boolean", 0) is false 89s ok 6 - is_type("null", 0) is false 89s ok 7 - is_type("object", 0) is false 89s ok 8 - is_type("string", 0) is false 89s ok 9 - data is not tampered with while it is tested (not dualvar) 89s ok 10 - is_type("integer", -1) is true 89s ok 11 - is_type("number", -1) is true 89s ok 12 - get_type(-1) = integer 89s ok 13 - is_type("array", -1) is false 89s ok 14 - is_type("boolean", -1) is false 89s ok 15 - is_type("null", -1) is false 89s ok 16 - is_type("object", -1) is false 89s ok 17 - is_type("string", -1) is false 89s ok 18 - data is not tampered with while it is tested (not dualvar) 89s ok 19 - is_type("integer", 2) is true 89s ok 20 - is_type("number", 2) is true 89s ok 21 - get_type(2) = integer 89s ok 22 - is_type("array", 2) is false 89s ok 23 - is_type("boolean", 2) is false 89s ok 24 - is_type("null", 2) is false 89s ok 25 - is_type("object", 2) is false 89s ok 26 - is_type("string", 2) is false 89s ok 27 - data is not tampered with while it is tested (not dualvar) 89s ok 28 - is_type("integer", 2.0) is true 89s ok 29 - is_type("number", 2.0) is true 89s ok 30 - get_type(2.0) = integer 89s ok 31 - is_type("array", 2.0) is false 89s ok 32 - is_type("boolean", 2.0) is false 89s ok 33 - is_type("null", 2.0) is false 89s ok 34 - is_type("object", 2.0) is false 89s ok 35 - is_type("string", 2.0) is false 89s ok 36 - data is not tampered with while it is tested (not dualvar) 89s ok 37 - is_type("integer", 2147483647) is true 89s ok 38 - is_type("number", 2147483647) is true 89s ok 39 - get_type(2147483647) = integer 89s ok 40 - is_type("array", 2147483647) is false 89s ok 41 - is_type("boolean", 2147483647) is false 89s ok 42 - is_type("null", 2147483647) is false 89s ok 43 - is_type("object", 2147483647) is false 89s ok 44 - is_type("string", 2147483647) is false 89s ok 45 - data is not tampered with while it is tested (not dualvar) 89s ok 46 - is_type("integer", 2147483648.0) is true 89s ok 47 - is_type("number", 2147483648.0) is true 89s ok 48 - get_type(2147483648.0) = integer 89s ok 49 - is_type("array", 2147483648.0) is false 89s ok 50 - is_type("boolean", 2147483648.0) is false 89s ok 51 - is_type("null", 2147483648.0) is false 89s ok 52 - is_type("object", 2147483648.0) is false 89s ok 53 - is_type("string", 2147483648.0) is false 89s ok 54 - data is not tampered with while it is tested (not dualvar) 89s ok 55 - is_type("integer", 9.22337203685478e+18) is true 89s ok 56 - is_type("number", 9.22337203685478e+18) is true 89s ok 57 - get_type(9.22337203685478e+18) = integer 89s ok 58 - is_type("array", 9.22337203685478e+18) is false 89s ok 59 - is_type("boolean", 9.22337203685478e+18) is false 89s ok 60 - is_type("null", 9.22337203685478e+18) is false 89s ok 61 - is_type("object", 9.22337203685478e+18) is false 89s ok 62 - is_type("string", 9.22337203685478e+18) is false 89s ok 63 - data is not tampered with while it is tested (not dualvar) 89s ok 64 - is_type("integer", 9.22337203685478e+18) is true 89s ok 65 - is_type("number", 9.22337203685478e+18) is true 89s ok 66 - get_type(9.22337203685478e+18) = integer 89s ok 67 - is_type("array", 9.22337203685478e+18) is false 89s ok 68 - is_type("boolean", 9.22337203685478e+18) is false 89s ok 69 - is_type("null", 9.22337203685478e+18) is false 89s ok 70 - is_type("object", 9.22337203685478e+18) is false 89s ok 71 - is_type("string", 9.22337203685478e+18) is false 89s ok 72 - data is not tampered with while it is tested (not dualvar) 89s ok 73 - is_type("integer", 1.84467440737096e+19) is true 89s ok 74 - is_type("number", 1.84467440737096e+19) is true 89s ok 75 - get_type(1.84467440737096e+19) = integer 89s ok 76 - is_type("array", 1.84467440737096e+19) is false 89s ok 77 - is_type("boolean", 1.84467440737096e+19) is false 89s ok 78 - is_type("null", 1.84467440737096e+19) is false 89s ok 79 - is_type("object", 1.84467440737096e+19) is false 89s ok 80 - is_type("string", 1.84467440737096e+19) is false 89s ok 81 - data is not tampered with while it is tested (not dualvar) 89s ok 82 - is_type("integer", 3.68934881474191e+19) is true 89s ok 83 - is_type("number", 3.68934881474191e+19) is true 89s ok 84 - get_type(3.68934881474191e+19) = integer 89s ok 85 - is_type("array", 3.68934881474191e+19) is false 89s ok 86 - is_type("boolean", 3.68934881474191e+19) is false 89s ok 87 - is_type("null", 3.68934881474191e+19) is false 89s ok 88 - is_type("object", 3.68934881474191e+19) is false 89s ok 89 - is_type("string", 3.68934881474191e+19) is false 89s ok 90 - data is not tampered with while it is tested (not dualvar) 89s ok 91 - is_type("integer", 1000000000000000) is true 89s ok 92 - is_type("number", 1000000000000000) is true 89s ok 93 - get_type(1000000000000000) = integer 89s ok 94 - is_type("array", 1000000000000000) is false 89s ok 95 - is_type("boolean", 1000000000000000) is false 89s ok 96 - is_type("null", 1000000000000000) is false 89s ok 97 - is_type("object", 1000000000000000) is false 89s ok 98 - is_type("string", 1000000000000000) is false 89s ok 99 - data is not tampered with while it is tested (not dualvar) 89s ok 100 - is_type("integer", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 89s ok 101 - is_type("number", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 89s ok 102 - get_type(Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) = integer 89s ok 103 - is_type("array", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 89s ok 104 - is_type("boolean", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 89s ok 105 - is_type("null", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 89s ok 106 - is_type("object", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 89s ok 107 - is_type("string", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 89s ok 108 - data is not tampered with while it is tested (not dualvar) 89s ok 109 - is_type("integer", Math::BigInt->new('1')) is true 89s ok 110 - is_type("number", Math::BigInt->new('1')) is true 89s ok 111 - get_type(Math::BigInt->new('1')) = integer 89s ok 112 - is_type("array", Math::BigInt->new('1')) is false 89s ok 113 - is_type("boolean", Math::BigInt->new('1')) is false 89s ok 114 - is_type("null", Math::BigInt->new('1')) is false 89s ok 115 - is_type("object", Math::BigInt->new('1')) is false 89s ok 116 - is_type("string", Math::BigInt->new('1')) is false 89s ok 117 - data is not tampered with while it is tested (not dualvar) 89s ok 118 - is_type("integer", Math::BigInt->new('1')) is true 89s ok 119 - is_type("number", Math::BigInt->new('1')) is true 89s ok 120 - get_type(Math::BigInt->new('1')) = integer 89s ok 121 - is_type("array", Math::BigInt->new('1')) is false 89s ok 122 - is_type("boolean", Math::BigInt->new('1')) is false 89s ok 123 - is_type("null", Math::BigInt->new('1')) is false 89s ok 124 - is_type("object", Math::BigInt->new('1')) is false 89s ok 125 - is_type("string", Math::BigInt->new('1')) is false 89s ok 126 - data is not tampered with while it is tested (not dualvar) 89s ok 127 - is_type("integer", Math::BigInt->new('12345123451234512345')) is true 89s ok 128 - is_type("number", Math::BigInt->new('12345123451234512345')) is true 89s ok 129 - get_type(Math::BigInt->new('12345123451234512345')) = integer 89s ok 130 - is_type("array", Math::BigInt->new('12345123451234512345')) is false 89s ok 131 - is_type("boolean", Math::BigInt->new('12345123451234512345')) is false 89s ok 132 - is_type("null", Math::BigInt->new('12345123451234512345')) is false 89s ok 133 - is_type("object", Math::BigInt->new('12345123451234512345')) is false 89s ok 134 - is_type("string", Math::BigInt->new('12345123451234512345')) is false 89s ok 135 - data is not tampered with while it is tested (not dualvar) 89s ok 136 - is_type("integer", Math::BigFloat->new('12345123451234512345')) is true 89s ok 137 - is_type("number", Math::BigFloat->new('12345123451234512345')) is true 89s ok 138 - get_type(Math::BigFloat->new('12345123451234512345')) = integer 89s ok 139 - is_type("array", Math::BigFloat->new('12345123451234512345')) is false 89s ok 140 - is_type("boolean", Math::BigFloat->new('12345123451234512345')) is false 89s ok 141 - is_type("null", Math::BigFloat->new('12345123451234512345')) is false 89s ok 142 - is_type("object", Math::BigFloat->new('12345123451234512345')) is false 89s ok 143 - is_type("string", Math::BigFloat->new('12345123451234512345')) is false 89s ok 144 - data is not tampered with while it is tested (not dualvar) 89s ok 145 - is_type("integer", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 89s ok 146 - is_type("number", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 89s ok 147 - get_type(Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) = integer 89s ok 148 - is_type("array", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 89s ok 149 - is_type("boolean", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 89s ok 150 - is_type("null", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 89s ok 151 - is_type("object", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 89s ok 152 - is_type("string", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 89s ok 153 - data is not tampered with while it is tested (not dualvar) 89s ok 154 - is_type("integer", Math::BigFloat->new('20000000000000')) is true 89s ok 155 - is_type("number", Math::BigFloat->new('20000000000000')) is true 89s ok 156 - get_type(Math::BigFloat->new('20000000000000')) = integer 89s ok 157 - is_type("array", Math::BigFloat->new('20000000000000')) is false 89s ok 158 - is_type("boolean", Math::BigFloat->new('20000000000000')) is false 89s ok 159 - is_type("null", Math::BigFloat->new('20000000000000')) is false 89s ok 160 - is_type("object", Math::BigFloat->new('20000000000000')) is false 89s ok 161 - is_type("string", Math::BigFloat->new('20000000000000')) is false 89s ok 162 - data is not tampered with while it is tested (not dualvar) 89s ok 163 - is_type("integer", Math::BigFloat->new('20')) is true 89s ok 164 - is_type("number", Math::BigFloat->new('20')) is true 89s ok 165 - get_type(Math::BigFloat->new('20')) = integer 89s ok 166 - is_type("array", Math::BigFloat->new('20')) is false 89s ok 167 - is_type("boolean", Math::BigFloat->new('20')) is false 89s ok 168 - is_type("null", Math::BigFloat->new('20')) is false 89s ok 169 - is_type("object", Math::BigFloat->new('20')) is false 89s ok 170 - is_type("string", Math::BigFloat->new('20')) is false 89s ok 171 - data is not tampered with while it is tested (not dualvar) 89s ok 172 - is_type("integer", Math::BigFloat->new('1')) is true 89s ok 173 - is_type("number", Math::BigFloat->new('1')) is true 89s ok 174 - get_type(Math::BigFloat->new('1')) = integer 89s ok 175 - is_type("array", Math::BigFloat->new('1')) is false 89s ok 176 - is_type("boolean", Math::BigFloat->new('1')) is false 89s ok 177 - is_type("null", Math::BigFloat->new('1')) is false 89s ok 178 - is_type("object", Math::BigFloat->new('1')) is false 89s ok 179 - is_type("string", Math::BigFloat->new('1')) is false 89s ok 180 - data is not tampered with while it is tested (not dualvar) 89s ok 181 - is_type("integer", Math::BigFloat->new('1')) is true 89s ok 182 - is_type("number", Math::BigFloat->new('1')) is true 89s ok 183 - get_type(Math::BigFloat->new('1')) = integer 89s ok 184 - is_type("array", Math::BigFloat->new('1')) is false 89s ok 185 - is_type("boolean", Math::BigFloat->new('1')) is false 89s ok 186 - is_type("null", Math::BigFloat->new('1')) is false 89s ok 187 - is_type("object", Math::BigFloat->new('1')) is false 89s ok 188 - is_type("string", Math::BigFloat->new('1')) is false 89s ok 189 - data is not tampered with while it is tested (not dualvar) 89s 1..189 89s } 89s ok 4 - inflated data, type: null { 89s ok 1 - is_type("null", null) is true 89s ok 2 - get_type(null) = null 89s ok 3 - is_type("array", null) is false 89s ok 4 - is_type("boolean", null) is false 89s ok 5 - is_type("integer", null) is false 89s ok 6 - is_type("number", null) is false 89s ok 7 - is_type("object", null) is false 89s ok 8 - is_type("string", null) is false 89s ok 9 - data is not tampered with while it is tested (not dualvar) 89s 1..9 89s } 89s ok 5 - inflated data, type: number { 89s ok 1 - is_type("number", 3.1) is true 89s ok 2 - get_type(3.1) = number 89s ok 3 - is_type("array", 3.1) is false 89s ok 4 - is_type("boolean", 3.1) is false 89s ok 5 - is_type("integer", 3.1) is false 89s ok 6 - is_type("null", 3.1) is false 89s ok 7 - is_type("object", 3.1) is false 89s ok 8 - is_type("string", 3.1) is false 89s ok 9 - data is not tampered with while it is tested (not dualvar) 89s ok 10 - is_type("number", 12345678901.2) is true 89s ok 11 - get_type(12345678901.2) = number 89s ok 12 - is_type("array", 12345678901.2) is false 89s ok 13 - is_type("boolean", 12345678901.2) is false 89s ok 14 - is_type("integer", 12345678901.2) is false 89s ok 15 - is_type("null", 12345678901.2) is false 89s ok 16 - is_type("object", 12345678901.2) is false 89s ok 17 - is_type("string", 12345678901.2) is false 89s ok 18 - data is not tampered with while it is tested (not dualvar) 89s ok 19 - is_type("number", Math::BigFloat->new('0.123')) is true 89s ok 20 - get_type(Math::BigFloat->new('0.123')) = number 89s ok 21 - is_type("array", Math::BigFloat->new('0.123')) is false 89s ok 22 - is_type("boolean", Math::BigFloat->new('0.123')) is false 89s ok 23 - is_type("integer", Math::BigFloat->new('0.123')) is false 89s ok 24 - is_type("null", Math::BigFloat->new('0.123')) is false 89s ok 25 - is_type("object", Math::BigFloat->new('0.123')) is false 89s ok 26 - is_type("string", Math::BigFloat->new('0.123')) is false 89s ok 27 - data is not tampered with while it is tested (not dualvar) 89s ok 28 - is_type("number", Math::BigFloat->new('12345123451234512345.2')) is true 89s ok 29 - get_type(Math::BigFloat->new('12345123451234512345.2')) = number 89s ok 30 - is_type("array", Math::BigFloat->new('12345123451234512345.2')) is false 89s ok 31 - is_type("boolean", Math::BigFloat->new('12345123451234512345.2')) is false 89s ok 32 - is_type("integer", Math::BigFloat->new('12345123451234512345.2')) is false 89s ok 33 - is_type("null", Math::BigFloat->new('12345123451234512345.2')) is false 89s ok 34 - is_type("object", Math::BigFloat->new('12345123451234512345.2')) is false 89s ok 35 - is_type("string", Math::BigFloat->new('12345123451234512345.2')) is false 89s ok 36 - data is not tampered with while it is tested (not dualvar) 89s 1..36 89s } 89s ok 6 - inflated data, type: object { 89s ok 1 - is_type("object", {}) is true 89s ok 2 - get_type({}) = object 89s ok 3 - is_type("array", {}) is false 89s ok 4 - is_type("boolean", {}) is false 89s ok 5 - is_type("integer", {}) is false 89s ok 6 - is_type("null", {}) is false 89s ok 7 - is_type("number", {}) is false 89s ok 8 - is_type("string", {}) is false 89s ok 9 - data is not tampered with while it is tested (not dualvar) 89s ok 10 - is_type("object", {"a" : 1}) is true 89s ok 11 - get_type({"a" : 1}) = object 89s ok 12 - is_type("array", {"a" : 1}) is false 89s ok 13 - is_type("boolean", {"a" : 1}) is false 89s ok 14 - is_type("integer", {"a" : 1}) is false 89s ok 15 - is_type("null", {"a" : 1}) is false 89s ok 16 - is_type("number", {"a" : 1}) is false 89s ok 17 - is_type("string", {"a" : 1}) is false 89s ok 18 - data is not tampered with while it is tested (not dualvar) 89s 1..18 89s } 89s ok 7 - inflated data, type: string { 89s ok 1 - is_type("string", "") is true 89s ok 2 - get_type("") = string 89s ok 3 - is_type("array", "") is false 89s ok 4 - is_type("boolean", "") is false 89s ok 5 - is_type("integer", "") is false 89s ok 6 - is_type("null", "") is false 89s ok 7 - is_type("number", "") is false 89s ok 8 - is_type("object", "") is false 89s ok 9 - data is not tampered with while it is tested (not dualvar) 89s ok 10 - is_type("string", "0") is true 89s ok 11 - get_type("0") = string 89s ok 12 - is_type("array", "0") is false 89s ok 13 - is_type("boolean", "0") is false 89s ok 14 - is_type("integer", "0") is false 89s ok 15 - is_type("null", "0") is false 89s ok 16 - is_type("number", "0") is false 89s ok 17 - is_type("object", "0") is false 89s ok 18 - data is not tampered with while it is tested (not dualvar) 89s ok 19 - is_type("string", "-1") is true 89s ok 20 - get_type("-1") = string 89s ok 21 - is_type("array", "-1") is false 89s ok 22 - is_type("boolean", "-1") is false 89s ok 23 - is_type("integer", "-1") is false 89s ok 24 - is_type("null", "-1") is false 89s ok 25 - is_type("number", "-1") is false 89s ok 26 - is_type("object", "-1") is false 89s ok 27 - data is not tampered with while it is tested (not dualvar) 89s ok 28 - is_type("string", "2") is true 89s ok 29 - get_type("2") = string 89s ok 30 - is_type("array", "2") is false 89s ok 31 - is_type("boolean", "2") is false 89s ok 32 - is_type("integer", "2") is false 89s ok 33 - is_type("null", "2") is false 89s ok 34 - is_type("number", "2") is false 89s ok 35 - is_type("object", "2") is false 89s ok 36 - data is not tampered with while it is tested (not dualvar) 89s ok 37 - is_type("string", "2.0") is true 89s ok 38 - get_type("2.0") = string 89s ok 39 - is_type("array", "2.0") is false 89s ok 40 - is_type("boolean", "2.0") is false 89s ok 41 - is_type("integer", "2.0") is false 89s ok 42 - is_type("null", "2.0") is false 89s ok 43 - is_type("number", "2.0") is false 89s ok 44 - is_type("object", "2.0") is false 89s ok 45 - data is not tampered with while it is tested (not dualvar) 89s ok 46 - is_type("string", "3.1") is true 89s ok 47 - get_type("3.1") = string 89s ok 48 - is_type("array", "3.1") is false 89s ok 49 - is_type("boolean", "3.1") is false 89s ok 50 - is_type("integer", "3.1") is false 89s ok 51 - is_type("null", "3.1") is false 89s ok 52 - is_type("number", "3.1") is false 89s ok 53 - is_type("object", "3.1") is false 89s ok 54 - data is not tampered with while it is tested (not dualvar) 89s ok 55 - is_type("string", "école") is true 89s ok 56 - get_type("école") = string 89s ok 57 - is_type("array", "école") is false 89s ok 58 - is_type("boolean", "école") is false 89s ok 59 - is_type("integer", "école") is false 89s ok 60 - is_type("null", "école") is false 89s ok 61 - is_type("number", "école") is false 89s ok 62 - is_type("object", "école") is false 89s ok 63 - data is not tampered with while it is tested (not dualvar) 89s ok 64 - is_type("string", "ಠ_ಠ") is true 89s ok 65 - get_type("ಠ_ಠ") = string 89s ok 66 - is_type("array", "ಠ_ಠ") is false 89s ok 67 - is_type("boolean", "ಠ_ಠ") is false 89s ok 68 - is_type("integer", "ಠ_ಠ") is false 89s ok 69 - is_type("null", "ಠ_ಠ") is false 89s ok 70 - is_type("number", "ಠ_ಠ") is false 89s ok 71 - is_type("object", "ಠ_ಠ") is false 89s ok 72 - data is not tampered with while it is tested (not dualvar) 89s 1..72 89s } 89s ok 8 - JSON-encoded data, type: array { 89s ok 1 - is_type("array", []) is true 89s ok 2 - get_type([]) = array 89s ok 3 - is_type("boolean", []) is false 89s ok 4 - is_type("integer", []) is false 89s ok 5 - is_type("null", []) is false 89s ok 6 - is_type("number", []) is false 89s ok 7 - is_type("object", []) is false 89s ok 8 - is_type("string", []) is false 89s ok 9 - data is not tampered with while it is tested (not dualvar) 89s ok 10 - is_type("array", [1]) is true 89s ok 11 - get_type([1]) = array 89s ok 12 - is_type("boolean", [1]) is false 89s ok 13 - is_type("integer", [1]) is false 89s ok 14 - is_type("null", [1]) is false 89s ok 15 - is_type("number", [1]) is false 89s ok 16 - is_type("object", [1]) is false 89s ok 17 - is_type("string", [1]) is false 89s ok 18 - data is not tampered with while it is tested (not dualvar) 89s 1..18 89s } 89s ok 9 - JSON-encoded data, type: boolean { 89s ok 1 - is_type("boolean", false) is true 89s ok 2 - get_type(false) = boolean 89s ok 3 - is_type("array", false) is false 89s ok 4 - is_type("integer", false) is false 89s ok 5 - is_type("null", false) is false 89s ok 6 - is_type("number", false) is false 89s ok 7 - is_type("object", false) is false 89s ok 8 - is_type("string", false) is false 89s ok 9 - data is not tampered with while it is tested (not dualvar) 89s ok 10 - is_type("boolean", true) is true 89s ok 11 - get_type(true) = boolean 89s ok 12 - is_type("array", true) is false 89s ok 13 - is_type("integer", true) is false 89s ok 14 - is_type("null", true) is false 89s ok 15 - is_type("number", true) is false 89s ok 16 - is_type("object", true) is false 89s ok 17 - is_type("string", true) is false 89s ok 18 - data is not tampered with while it is tested (not dualvar) 89s 1..18 89s } 89s ok 10 - JSON-encoded data, type: integer { 89s ok 1 - is_type("integer", 0) is true 89s ok 2 - is_type("number", 0) is true 89s ok 3 - get_type(0) = integer 89s ok 4 - is_type("array", 0) is false 89s ok 5 - is_type("boolean", 0) is false 89s ok 6 - is_type("null", 0) is false 89s ok 7 - is_type("object", 0) is false 89s ok 8 - is_type("string", 0) is false 89s ok 9 - data is not tampered with while it is tested (not dualvar) 89s ok 10 - is_type("integer", -1) is true 89s ok 11 - is_type("number", -1) is true 89s ok 12 - get_type(-1) = integer 89s ok 13 - is_type("array", -1) is false 89s ok 14 - is_type("boolean", -1) is false 89s ok 15 - is_type("null", -1) is false 89s ok 16 - is_type("object", -1) is false 89s ok 17 - is_type("string", -1) is false 89s ok 18 - data is not tampered with while it is tested (not dualvar) 89s ok 19 - is_type("integer", Math::BigFloat->new('2')) is true 89s ok 20 - is_type("number", Math::BigFloat->new('2')) is true 89s ok 21 - get_type(Math::BigFloat->new('2')) = integer 89s ok 22 - is_type("array", Math::BigFloat->new('2')) is false 89s ok 23 - is_type("boolean", Math::BigFloat->new('2')) is false 89s ok 24 - is_type("null", Math::BigFloat->new('2')) is false 89s ok 25 - is_type("object", Math::BigFloat->new('2')) is false 89s ok 26 - is_type("string", Math::BigFloat->new('2')) is false 89s ok 27 - data is not tampered with while it is tested (not dualvar) 89s ok 28 - is_type("integer", 2147483647) is true 89s ok 29 - is_type("number", 2147483647) is true 89s ok 30 - get_type(2147483647) = integer 89s ok 31 - is_type("array", 2147483647) is false 89s ok 32 - is_type("boolean", 2147483647) is false 89s ok 33 - is_type("null", 2147483647) is false 89s ok 34 - is_type("object", 2147483647) is false 89s ok 35 - is_type("string", 2147483647) is false 89s ok 36 - data is not tampered with while it is tested (not dualvar) 89s ok 37 - is_type("integer", 2147483648) is true 89s ok 38 - is_type("number", 2147483648) is true 89s ok 39 - get_type(2147483648) = integer 89s ok 40 - is_type("array", 2147483648) is false 89s ok 41 - is_type("boolean", 2147483648) is false 89s ok 42 - is_type("null", 2147483648) is false 89s ok 43 - is_type("object", 2147483648) is false 89s ok 44 - is_type("string", 2147483648) is false 89s ok 45 - data is not tampered with while it is tested (not dualvar) 89s ok 46 - is_type("integer", Math::BigFloat->new('9223372036854780000')) is true 89s ok 47 - is_type("number", Math::BigFloat->new('9223372036854780000')) is true 89s ok 48 - get_type(Math::BigFloat->new('9223372036854780000')) = integer 89s ok 49 - is_type("array", Math::BigFloat->new('9223372036854780000')) is false 89s ok 50 - is_type("boolean", Math::BigFloat->new('9223372036854780000')) is false 89s ok 51 - is_type("null", Math::BigFloat->new('9223372036854780000')) is false 89s ok 52 - is_type("object", Math::BigFloat->new('9223372036854780000')) is false 89s ok 53 - is_type("string", Math::BigFloat->new('9223372036854780000')) is false 89s ok 54 - data is not tampered with while it is tested (not dualvar) 89s ok 55 - is_type("integer", Math::BigFloat->new('9223372036854780000')) is true 89s ok 56 - is_type("number", Math::BigFloat->new('9223372036854780000')) is true 89s ok 57 - get_type(Math::BigFloat->new('9223372036854780000')) = integer 89s ok 58 - is_type("array", Math::BigFloat->new('9223372036854780000')) is false 89s ok 59 - is_type("boolean", Math::BigFloat->new('9223372036854780000')) is false 89s ok 60 - is_type("null", Math::BigFloat->new('9223372036854780000')) is false 89s ok 61 - is_type("object", Math::BigFloat->new('9223372036854780000')) is false 89s ok 62 - is_type("string", Math::BigFloat->new('9223372036854780000')) is false 89s ok 63 - data is not tampered with while it is tested (not dualvar) 89s ok 64 - is_type("integer", Math::BigFloat->new('18446744073709600000')) is true 89s ok 65 - is_type("number", Math::BigFloat->new('18446744073709600000')) is true 89s ok 66 - get_type(Math::BigFloat->new('18446744073709600000')) = integer 89s ok 67 - is_type("array", Math::BigFloat->new('18446744073709600000')) is false 89s ok 68 - is_type("boolean", Math::BigFloat->new('18446744073709600000')) is false 89s ok 69 - is_type("null", Math::BigFloat->new('18446744073709600000')) is false 89s ok 70 - is_type("object", Math::BigFloat->new('18446744073709600000')) is false 89s ok 71 - is_type("string", Math::BigFloat->new('18446744073709600000')) is false 89s ok 72 - data is not tampered with while it is tested (not dualvar) 89s ok 73 - is_type("integer", Math::BigFloat->new('36893488147419100000')) is true 89s ok 74 - is_type("number", Math::BigFloat->new('36893488147419100000')) is true 89s ok 75 - get_type(Math::BigFloat->new('36893488147419100000')) = integer 89s ok 76 - is_type("array", Math::BigFloat->new('36893488147419100000')) is false 89s ok 77 - is_type("boolean", Math::BigFloat->new('36893488147419100000')) is false 89s ok 78 - is_type("null", Math::BigFloat->new('36893488147419100000')) is false 89s ok 79 - is_type("object", Math::BigFloat->new('36893488147419100000')) is false 89s ok 80 - is_type("string", Math::BigFloat->new('36893488147419100000')) is false 89s ok 81 - data is not tampered with while it is tested (not dualvar) 89s ok 82 - is_type("integer", 1000000000000000) is true 89s ok 83 - is_type("number", 1000000000000000) is true 89s ok 84 - get_type(1000000000000000) = integer 89s ok 85 - is_type("array", 1000000000000000) is false 89s ok 86 - is_type("boolean", 1000000000000000) is false 89s ok 87 - is_type("null", 1000000000000000) is false 89s ok 88 - is_type("object", 1000000000000000) is false 89s ok 89 - is_type("string", 1000000000000000) is false 89s ok 90 - data is not tampered with while it is tested (not dualvar) 89s ok 91 - is_type("integer", Math::BigFloat->new('20')) is true 89s ok 92 - is_type("number", Math::BigFloat->new('20')) is true 89s ok 93 - get_type(Math::BigFloat->new('20')) = integer 89s ok 94 - is_type("array", Math::BigFloat->new('20')) is false 89s ok 95 - is_type("boolean", Math::BigFloat->new('20')) is false 89s ok 96 - is_type("null", Math::BigFloat->new('20')) is false 89s ok 97 - is_type("object", Math::BigFloat->new('20')) is false 89s ok 98 - is_type("string", Math::BigFloat->new('20')) is false 89s ok 99 - data is not tampered with while it is tested (not dualvar) 89s ok 100 - is_type("integer", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 89s ok 101 - is_type("number", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 89s ok 102 - get_type(Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) = integer 89s ok 103 - is_type("array", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 89s ok 104 - is_type("boolean", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 89s ok 105 - is_type("null", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 89s ok 106 - is_type("object", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 89s ok 107 - is_type("string", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 89s ok 108 - data is not tampered with while it is tested (not dualvar) 89s ok 109 - is_type("integer", Math::BigFloat->new('12345123451234512345')) is true 89s ok 110 - is_type("number", Math::BigFloat->new('12345123451234512345')) is true 89s ok 111 - get_type(Math::BigFloat->new('12345123451234512345')) = integer 89s ok 112 - is_type("array", Math::BigFloat->new('12345123451234512345')) is false 89s ok 113 - is_type("boolean", Math::BigFloat->new('12345123451234512345')) is false 89s ok 114 - is_type("null", Math::BigFloat->new('12345123451234512345')) is false 89s ok 115 - is_type("object", Math::BigFloat->new('12345123451234512345')) is false 89s ok 116 - is_type("string", Math::BigFloat->new('12345123451234512345')) is false 89s ok 117 - data is not tampered with while it is tested (not dualvar) 89s 1..117 89s } 89s ok 11 - JSON-encoded data, type: null { 89s ok 1 - is_type("null", null) is true 89s ok 2 - get_type(null) = null 89s ok 3 - is_type("array", null) is false 89s ok 4 - is_type("boolean", null) is false 89s ok 5 - is_type("integer", null) is false 89s ok 6 - is_type("number", null) is false 89s ok 7 - is_type("object", null) is false 89s ok 8 - is_type("string", null) is false 89s ok 9 - data is not tampered with while it is tested (not dualvar) 89s 1..9 89s } 89s ok 12 - JSON-encoded data, type: number { 89s ok 1 - is_type("number", Math::BigFloat->new('3.1')) is true 89s ok 2 - get_type(Math::BigFloat->new('3.1')) = number 89s ok 3 - is_type("array", Math::BigFloat->new('3.1')) is false 89s ok 4 - is_type("boolean", Math::BigFloat->new('3.1')) is false 89s ok 5 - is_type("integer", Math::BigFloat->new('3.1')) is false 89s ok 6 - is_type("null", Math::BigFloat->new('3.1')) is false 89s ok 7 - is_type("object", Math::BigFloat->new('3.1')) is false 89s ok 8 - is_type("string", Math::BigFloat->new('3.1')) is false 89s ok 9 - data is not tampered with while it is tested (not dualvar) 89s ok 10 - is_type("number", Math::BigFloat->new('12345678901.2')) is true 89s ok 11 - get_type(Math::BigFloat->new('12345678901.2')) = number 89s ok 12 - is_type("array", Math::BigFloat->new('12345678901.2')) is false 89s ok 13 - is_type("boolean", Math::BigFloat->new('12345678901.2')) is false 89s ok 14 - is_type("integer", Math::BigFloat->new('12345678901.2')) is false 89s ok 15 - is_type("null", Math::BigFloat->new('12345678901.2')) is false 89s ok 16 - is_type("object", Math::BigFloat->new('12345678901.2')) is false 89s ok 17 - is_type("string", Math::BigFloat->new('12345678901.2')) is false 89s ok 18 - data is not tampered with while it is tested (not dualvar) 89s ok 19 - is_type("number", Math::BigFloat->new('0.123')) is true 89s ok 20 - get_type(Math::BigFloat->new('0.123')) = number 89s ok 21 - is_type("array", Math::BigFloat->new('0.123')) is false 89s ok 22 - is_type("boolean", Math::BigFloat->new('0.123')) is false 89s ok 23 - is_type("integer", Math::BigFloat->new('0.123')) is false 89s ok 24 - is_type("null", Math::BigFloat->new('0.123')) is false 89s ok 25 - is_type("object", Math::BigFloat->new('0.123')) is false 89s ok 26 - is_type("string", Math::BigFloat->new('0.123')) is false 89s ok 27 - data is not tampered with while it is tested (not dualvar) 89s ok 28 - is_type("number", Math::BigFloat->new('12345123451234512345.2')) is true 89s ok 29 - get_type(Math::BigFloat->new('12345123451234512345.2')) = number 89s ok 30 - is_type("array", Math::BigFloat->new('12345123451234512345.2')) is false 89s ok 31 - is_type("boolean", Math::BigFloat->new('12345123451234512345.2')) is false 89s ok 32 - is_type("integer", Math::BigFloat->new('12345123451234512345.2')) is false 89s ok 33 - is_type("null", Math::BigFloat->new('12345123451234512345.2')) is false 89s ok 34 - is_type("object", Math::BigFloat->new('12345123451234512345.2')) is false 89s ok 35 - is_type("string", Math::BigFloat->new('12345123451234512345.2')) is false 89s ok 36 - data is not tampered with while it is tested (not dualvar) 89s 1..36 89s } 89s ok 13 - JSON-encoded data, type: object { 89s ok 1 - is_type("object", {}) is true 89s ok 2 - get_type({}) = object 89s ok 3 - is_type("array", {}) is false 89s ok 4 - is_type("boolean", {}) is false 89s ok 5 - is_type("integer", {}) is false 89s ok 6 - is_type("null", {}) is false 89s ok 7 - is_type("number", {}) is false 89s ok 8 - is_type("string", {}) is false 89s ok 9 - data is not tampered with while it is tested (not dualvar) 89s ok 10 - is_type("object", {"a" : 1}) is true 89s ok 11 - get_type({"a" : 1}) = object 89s ok 12 - is_type("array", {"a" : 1}) is false 89s ok 13 - is_type("boolean", {"a" : 1}) is false 89s ok 14 - is_type("integer", {"a" : 1}) is false 89s ok 15 - is_type("null", {"a" : 1}) is false 89s ok 16 - is_type("number", {"a" : 1}) is false 89s ok 17 - is_type("string", {"a" : 1}) is false 89s ok 18 - data is not tampered with while it is tested (not dualvar) 89s 1..18 89s } 89s ok 14 - JSON-encoded data, type: string { 89s ok 1 - is_type("string", "") is true 89s ok 2 - get_type("") = string 89s ok 3 - is_type("array", "") is false 89s ok 4 - is_type("boolean", "") is false 89s ok 5 - is_type("integer", "") is false 89s ok 6 - is_type("null", "") is false 89s ok 7 - is_type("number", "") is false 89s ok 8 - is_type("object", "") is false 89s ok 9 - data is not tampered with while it is tested (not dualvar) 89s ok 10 - is_type("string", "0") is true 89s ok 11 - get_type("0") = string 89s ok 12 - is_type("array", "0") is false 89s ok 13 - is_type("boolean", "0") is false 89s ok 14 - is_type("integer", "0") is false 89s ok 15 - is_type("null", "0") is false 89s ok 16 - is_type("number", "0") is false 89s ok 17 - is_type("object", "0") is false 89s ok 18 - data is not tampered with while it is tested (not dualvar) 89s ok 19 - is_type("string", "-1") is true 89s ok 20 - get_type("-1") = string 89s ok 21 - is_type("array", "-1") is false 89s ok 22 - is_type("boolean", "-1") is false 89s ok 23 - is_type("integer", "-1") is false 89s ok 24 - is_type("null", "-1") is false 89s ok 25 - is_type("number", "-1") is false 89s ok 26 - is_type("object", "-1") is false 89s ok 27 - data is not tampered with while it is tested (not dualvar) 89s ok 28 - is_type("string", "2.0") is true 89s ok 29 - get_type("2.0") = string 89s ok 30 - is_type("array", "2.0") is false 89s ok 31 - is_type("boolean", "2.0") is false 89s ok 32 - is_type("integer", "2.0") is false 89s ok 33 - is_type("null", "2.0") is false 89s ok 34 - is_type("number", "2.0") is false 89s ok 35 - is_type("object", "2.0") is false 89s ok 36 - data is not tampered with while it is tested (not dualvar) 89s ok 37 - is_type("string", "3.1") is true 89s ok 38 - get_type("3.1") = string 89s ok 39 - is_type("array", "3.1") is false 89s ok 40 - is_type("boolean", "3.1") is false 89s ok 41 - is_type("integer", "3.1") is false 89s ok 42 - is_type("null", "3.1") is false 89s ok 43 - is_type("number", "3.1") is false 89s ok 44 - is_type("object", "3.1") is false 89s ok 45 - data is not tampered with while it is tested (not dualvar) 89s ok 46 - is_type("string", "école") is true 89s ok 47 - get_type("école") = string 89s ok 48 - is_type("array", "école") is false 89s ok 49 - is_type("boolean", "école") is false 89s ok 50 - is_type("integer", "école") is false 89s ok 51 - is_type("null", "école") is false 89s ok 52 - is_type("number", "école") is false 89s ok 53 - is_type("object", "école") is false 89s ok 54 - data is not tampered with while it is tested (not dualvar) 89s ok 55 - is_type("string", "ಠ_ಠ") is true 89s ok 56 - get_type("ಠ_ಠ") = string 89s ok 57 - is_type("array", "ಠ_ಠ") is false 89s ok 58 - is_type("boolean", "ಠ_ಠ") is false 89s ok 59 - is_type("integer", "ಠ_ಠ") is false 89s ok 60 - is_type("null", "ಠ_ಠ") is false 89s ok 61 - is_type("number", "ಠ_ಠ") is false 89s ok 62 - is_type("object", "ಠ_ಠ") is false 89s ok 63 - data is not tampered with while it is tested (not dualvar) 89s 1..63 89s } 89s ok 15 - integers and numbers in draft4 { 89s ok 1 - pre-inflated data { 89s ok 1 - is_type("integer", 0) is true 89s ok 2 - is_type("number", 0) is true 89s ok 3 - get_type(0) = integer 89s ok 4 - is_type("null", 0) is false 89s ok 5 - is_type("boolean", 0) is false 89s ok 6 - is_type("object", 0) is false 89s ok 7 - is_type("array", 0) is false 89s ok 8 - is_type("string", 0) is false 89s ok 9 - data is not tampered with while it is tested (not dualvar) 89s ok 10 - is_type("integer", -1) is true 89s ok 11 - is_type("number", -1) is true 89s ok 12 - get_type(-1) = integer 89s ok 13 - is_type("null", -1) is false 89s ok 14 - is_type("boolean", -1) is false 89s ok 15 - is_type("object", -1) is false 89s ok 16 - is_type("array", -1) is false 89s ok 17 - is_type("string", -1) is false 89s ok 18 - data is not tampered with while it is tested (not dualvar) 89s ok 19 - is_type("integer", 2) is true 89s ok 20 - is_type("number", 2) is true 89s ok 21 - get_type(2) = integer 89s ok 22 - is_type("null", 2) is false 89s ok 23 - is_type("boolean", 2) is false 89s ok 24 - is_type("object", 2) is false 89s ok 25 - is_type("array", 2) is false 89s ok 26 - is_type("string", 2) is false 89s ok 27 - data is not tampered with while it is tested (not dualvar) 89s ok 28 - is_type("integer", Math::BigInt->new('2')) is true 89s ok 29 - is_type("number", Math::BigInt->new('2')) is true 89s ok 30 - get_type(Math::BigInt->new('2')) = integer 89s ok 31 - is_type("null", Math::BigInt->new('2')) is false 89s ok 32 - is_type("boolean", Math::BigInt->new('2')) is false 89s ok 33 - is_type("object", Math::BigInt->new('2')) is false 89s ok 34 - is_type("array", Math::BigInt->new('2')) is false 89s ok 35 - is_type("string", Math::BigInt->new('2')) is false 89s ok 36 - data is not tampered with while it is tested (not dualvar) 89s ok 37 - is_type("integer", Math::BigInt->new('1')) is true 89s ok 38 - is_type("number", Math::BigInt->new('1')) is true 89s ok 39 - get_type(Math::BigInt->new('1')) = integer 89s ok 40 - is_type("null", Math::BigInt->new('1')) is false 89s ok 41 - is_type("boolean", Math::BigInt->new('1')) is false 89s ok 42 - is_type("object", Math::BigInt->new('1')) is false 89s ok 43 - is_type("array", Math::BigInt->new('1')) is false 89s ok 44 - is_type("string", Math::BigInt->new('1')) is false 89s ok 45 - data is not tampered with while it is tested (not dualvar) 89s ok 46 - is_type("number", 3.1) is true 89s ok 47 - get_type(3.1) = number 89s ok 48 - is_type("null", 3.1) is false 89s ok 49 - is_type("boolean", 3.1) is false 89s ok 50 - is_type("object", 3.1) is false 89s ok 51 - is_type("array", 3.1) is false 89s ok 52 - is_type("string", 3.1) is false 89s ok 53 - is_type("integer", 3.1) is false 89s ok 54 - data is not tampered with while it is tested (not dualvar) 89s ok 55 - is_type("number", 2.0) is true 89s ok 56 - get_type(2.0) = number 89s ok 57 - is_type("null", 2.0) is false 89s ok 58 - is_type("boolean", 2.0) is false 89s ok 59 - is_type("object", 2.0) is false 89s ok 60 - is_type("array", 2.0) is false 89s ok 61 - is_type("string", 2.0) is false 89s ok 62 - is_type("integer", 2.0) is false 89s ok 63 - data is not tampered with while it is tested (not dualvar) 89s ok 64 - is_type("number", 12345678901.2) is true 89s ok 65 - get_type(12345678901.2) = number 89s ok 66 - is_type("null", 12345678901.2) is false 89s ok 67 - is_type("boolean", 12345678901.2) is false 89s ok 68 - is_type("object", 12345678901.2) is false 89s ok 69 - is_type("array", 12345678901.2) is false 89s ok 70 - is_type("string", 12345678901.2) is false 89s ok 71 - is_type("integer", 12345678901.2) is false 89s ok 72 - data is not tampered with while it is tested (not dualvar) 89s ok 73 - is_type("number", Math::BigFloat->new('0.123')) is true 89s ok 74 - get_type(Math::BigFloat->new('0.123')) = number 89s ok 75 - is_type("null", Math::BigFloat->new('0.123')) is false 89s ok 76 - is_type("boolean", Math::BigFloat->new('0.123')) is false 89s ok 77 - is_type("object", Math::BigFloat->new('0.123')) is false 89s ok 78 - is_type("array", Math::BigFloat->new('0.123')) is false 89s ok 79 - is_type("string", Math::BigFloat->new('0.123')) is false 89s ok 80 - is_type("integer", Math::BigFloat->new('0.123')) is false 89s ok 81 - data is not tampered with while it is tested (not dualvar) 89s ok 82 - is_type("number", Math::BigFloat->new('2')) is true 89s ok 83 - get_type(Math::BigFloat->new('2')) = number 89s ok 84 - is_type("null", Math::BigFloat->new('2')) is false 89s ok 85 - is_type("boolean", Math::BigFloat->new('2')) is false 89s ok 86 - is_type("object", Math::BigFloat->new('2')) is false 89s ok 87 - is_type("array", Math::BigFloat->new('2')) is false 89s ok 88 - is_type("string", Math::BigFloat->new('2')) is false 89s ok 89 - is_type("integer", Math::BigFloat->new('2')) is false 89s ok 90 - data is not tampered with while it is tested (not dualvar) 89s 1..90 89s } 89s ok 2 - data from encoded json { 89s ok 1 - is_type("integer", 0) is true 89s ok 2 - is_type("number", 0) is true 89s ok 3 - get_type(0) = integer 89s ok 4 - is_type("null", 0) is false 89s ok 5 - is_type("boolean", 0) is false 89s ok 6 - is_type("object", 0) is false 89s ok 7 - is_type("array", 0) is false 89s ok 8 - is_type("string", 0) is false 89s ok 9 - data is not tampered with while it is tested (not dualvar) 89s ok 10 - is_type("integer", -1) is true 89s ok 11 - is_type("number", -1) is true 89s ok 12 - get_type(-1) = integer 89s ok 13 - is_type("null", -1) is false 89s ok 14 - is_type("boolean", -1) is false 89s ok 15 - is_type("object", -1) is false 89s ok 16 - is_type("array", -1) is false 89s ok 17 - is_type("string", -1) is false 89s ok 18 - data is not tampered with while it is tested (not dualvar) 89s ok 19 - is_type("integer", 1000000000000000) is true 89s ok 20 - is_type("number", 1000000000000000) is true 89s ok 21 - get_type(1000000000000000) = integer 89s ok 22 - is_type("null", 1000000000000000) is false 89s ok 23 - is_type("boolean", 1000000000000000) is false 89s ok 24 - is_type("object", 1000000000000000) is false 89s ok 25 - is_type("array", 1000000000000000) is false 89s ok 26 - is_type("string", 1000000000000000) is false 89s ok 27 - data is not tampered with while it is tested (not dualvar) 89s ok 28 - is_type("number", Math::BigFloat->new('3.1')) is true 89s ok 29 - get_type(Math::BigFloat->new('3.1')) = number 89s ok 30 - is_type("null", Math::BigFloat->new('3.1')) is false 89s ok 31 - is_type("boolean", Math::BigFloat->new('3.1')) is false 89s ok 32 - is_type("object", Math::BigFloat->new('3.1')) is false 89s ok 33 - is_type("array", Math::BigFloat->new('3.1')) is false 89s ok 34 - is_type("string", Math::BigFloat->new('3.1')) is false 89s ok 35 - is_type("integer", Math::BigFloat->new('3.1')) is false 89s ok 36 - data is not tampered with while it is tested (not dualvar) 89s ok 37 - is_type("number", Math::BigFloat->new('12345678901.2')) is true 89s ok 38 - get_type(Math::BigFloat->new('12345678901.2')) = number 89s ok 39 - is_type("null", Math::BigFloat->new('12345678901.2')) is false 89s ok 40 - is_type("boolean", Math::BigFloat->new('12345678901.2')) is false 89s ok 41 - is_type("object", Math::BigFloat->new('12345678901.2')) is false 89s ok 42 - is_type("array", Math::BigFloat->new('12345678901.2')) is false 89s ok 43 - is_type("string", Math::BigFloat->new('12345678901.2')) is false 89s ok 44 - is_type("integer", Math::BigFloat->new('12345678901.2')) is false 89s ok 45 - data is not tampered with while it is tested (not dualvar) 89s ok 46 - is_type("number", Math::BigFloat->new('0.123')) is true 89s ok 47 - get_type(Math::BigFloat->new('0.123')) = number 89s ok 48 - is_type("null", Math::BigFloat->new('0.123')) is false 89s ok 49 - is_type("boolean", Math::BigFloat->new('0.123')) is false 89s ok 50 - is_type("object", Math::BigFloat->new('0.123')) is false 89s ok 51 - is_type("array", Math::BigFloat->new('0.123')) is false 89s ok 52 - is_type("string", Math::BigFloat->new('0.123')) is false 89s ok 53 - is_type("integer", Math::BigFloat->new('0.123')) is false 89s ok 54 - data is not tampered with while it is tested (not dualvar) 89s ok 55 - is_type("number", Math::BigFloat->new('2')) is true 89s ok 56 - get_type(Math::BigFloat->new('2')) = number 89s ok 57 - is_type("null", Math::BigFloat->new('2')) is false 89s ok 58 - is_type("boolean", Math::BigFloat->new('2')) is false 89s ok 59 - is_type("object", Math::BigFloat->new('2')) is false 89s ok 60 - is_type("array", Math::BigFloat->new('2')) is false 89s ok 61 - is_type("string", Math::BigFloat->new('2')) is false 89s ok 62 - is_type("integer", Math::BigFloat->new('2')) is false 89s ok 63 - data is not tampered with while it is tested (not dualvar) 89s 1..63 89s } 89s 1..2 89s } 89s ok 16 - non-existent type does not result in exception 89s ok 17 - ambiguous types { 89s ok 1 - integers { 89s ok 1 - dualvar integers with different values are ambiguous 89s ok 2 - dualvar integers with different values are not integers 89s ok 3 - dualvar integers with different values are not numbers 89s ok 4 - dualvar integers with different values are not strings 89s ok 5 - skipped test # skip on perls < 5.35.9, reading the string form of an integer value sets the flag SVf_POK 89s ok 6 - integer that is later used as a string is still identified as a integer 89s ok 7 - integer that is later used as a string is still an integer 89s ok 8 - integer that is later used as a string is still a number 89s ok 9 - integer that is later used as a string is not a string 89s 1..9 89s } 89s ok 2 - numbers { 89s ok 1 - dualvar numbers are ambiguous in get_type 89s ok 2 - dualvar numbers are not integers 89s ok 3 - dualvar numbers are not numbers 89s ok 4 - dualvar numbers are not strings 89s ok 5 - number that is later used as a string is still identified as a number 89s ok 6 - number that is later used as a string is not an integer 89s ok 7 - number that is later used as a string is still a number 89s ok 8 - number that is later used as a string is not a string 89s 1..8 89s } 89s ok 3 - strings { 89s ok 1 - dualvar strings are ambiguous in get_type 89s ok 2 - dualvar strings are not integers 89s ok 3 - dualvar strings are not numbers 89s ok 4 - dualvar strings are not strings 89s ok 5 - string that is later used as an integer is still identified as a string 89s ok 6 - skipped test # skip on perls < 5.35.9, reading the string form of an integer value sets the flag SVf_POK 89s ok 7 - string that is later used as an integer is not an integer 89s ok 8 - string that is later used as an integer is not a number 89s ok 9 - string that is later used as an integer is still a string 89s ok 10 - string that is later used as a number is still identified as a string 89s ok 11 - string that is later used as a number is not an integer 89s ok 12 - skipped test # skip on perls < 5.35.9, reading the string form of an integer value sets the flag SVf_POK 89s ok 13 - string that is later used as a number is not a number 89s ok 14 - string that is later used as a number is still a string 89s 1..14 89s } 89s 1..3 89s } 89s ok 18 - is_type and get_type for references { 89s ok 1 - reference to SCALAR type is reported without exception 89s ok 2 - value is a reference to SCALAR 89s ok 3 - value is not a null 89s ok 4 - value is not a object 89s ok 5 - value is not a array 89s ok 6 - value is not a boolean 89s ok 7 - value is not a string 89s ok 8 - value is not a number 89s ok 9 - value is not a integer 89s ok 10 - reference to REF type is reported without exception 89s ok 11 - value is a reference to REF 89s ok 12 - value is not a null 89s ok 13 - value is not a object 89s ok 14 - value is not a array 89s ok 15 - value is not a boolean 89s ok 16 - value is not a string 89s ok 17 - value is not a number 89s ok 18 - value is not a integer 89s ok 19 - reference to CODE type is reported without exception 89s ok 20 - value is a reference to CODE 89s ok 21 - value is not a null 89s ok 22 - value is not a object 89s ok 23 - value is not a array 89s ok 24 - value is not a boolean 89s ok 25 - value is not a string 89s ok 26 - value is not a number 89s ok 27 - value is not a integer 89s ok 28 - reference to GLOB type is reported without exception 89s ok 29 - value is a reference to GLOB 89s ok 30 - value is not a null 89s ok 31 - value is not a object 89s ok 32 - value is not a array 89s ok 33 - value is not a boolean 89s ok 34 - value is not a string 89s ok 35 - value is not a number 89s ok 36 - value is not a integer 89s ok 37 - reference to LVALUE type is reported without exception 89s ok 38 - value is a reference to LVALUE 89s ok 39 - value is not a null 89s ok 40 - value is not a object 89s ok 41 - value is not a array 89s ok 42 - value is not a boolean 89s ok 43 - value is not a string 89s ok 44 - value is not a number 89s ok 45 - value is not a integer 89s ok 46 - reference to VSTRING type is reported without exception 89s ok 47 - value is a reference to VSTRING 89s ok 48 - value is not a null 89s ok 49 - value is not a object 89s ok 50 - value is not a array 89s ok 51 - value is not a boolean 89s ok 52 - value is not a string 89s ok 53 - value is not a number 89s ok 54 - value is not a integer 89s ok 55 - Regexp type is reported without exception 89s ok 56 - value is a Regexp 89s ok 57 - value is not a null 89s ok 58 - value is not a object 89s ok 59 - value is not a array 89s ok 60 - value is not a boolean 89s ok 61 - value is not a string 89s ok 62 - value is not a number 89s ok 63 - value is not a integer 89s ok 64 - IO::File type is reported without exception 89s ok 65 - value is a IO::File 89s ok 66 - value is not a null 89s ok 67 - value is not a object 89s ok 68 - value is not a array 89s ok 69 - value is not a boolean 89s ok 70 - value is not a string 89s ok 71 - value is not a number 89s ok 72 - value is not a integer 89s ok 73 - Foo type is reported without exception 89s ok 74 - value is a Foo 89s ok 75 - value is not a null 89s ok 76 - value is not a object 89s ok 77 - value is not a array 89s ok 78 - value is not a boolean 89s ok 79 - value is not a string 89s ok 80 - value is not a number 89s ok 81 - value is not a integer 89s ok 82 - 0 type is reported without exception 89s ok 83 - value is a 0 89s ok 84 - value is not a null 89s ok 85 - value is not a object 89s ok 86 - value is not a array 89s ok 87 - value is not a boolean 89s ok 88 - value is not a string 89s ok 89 - value is not a number 89s ok 90 - value is not a integer 89s 1..90 89s } 89s 1..18 89s ok 89s t/unsupported-keywords.t ................ 89s # Seeded srand with seed '20251102' from local date. 89s # 89s # draft6 89s ok 1 - schema with "id" still validates in draft6 89s ok 2 - warned for "id" in draft6 89s # 89s # draft7 89s ok 3 - schema with "id" still validates in draft7 89s ok 4 - warned for "id" in draft7 89s ok 5 - schema with "definitions" validates in draft7 89s ok 6 - did not warn for "definitions" in draft7 89s ok 7 - schema with "dependencies" validates in draft7 89s ok 8 - did not warn for "dependencies" in draft7 89s # 89s # draft2019-09 89s ok 9 - schema with "id" still validates in draft2019-09 89s ok 10 - warned for "id" in draft2019-09 89s ok 11 - schema with "definitions" still validates in draft2019-09 89s ok 12 - warned for "definitions" in draft2019-09 89s ok 13 - schema with "dependencies" still validates in draft2019-09 89s ok 14 - warned for "dependencies" in draft2019-09 89s 1..14 89s ok 90s t/validate-schema.t ..................... 90s # Seeded srand with seed '20251102' from local date. 90s ok 1 - validate_schema on simple schema with no $schema keyword 90s ok 2 - validate_schema on schema with metaschema $schema keyword 90s ok 3 - validate_schema with custom metaschema 90s ok 4 - validate_schema with schema that validates against the metaschema, but fails in extra traverse checks 90s 1..4 90s ok 90s t/vocabularies.t ........................ 90s # Seeded srand with seed '20251102' from local date. 90s ok 1 - valid keywords { 90s ok 1 - draft4, Applicator: calculated keyword list matches hardcoded table 90s ok 2 - draft4, Core: calculated keyword list matches hardcoded table 90s ok 3 - draft4, FormatAnnotation: calculated keyword list matches hardcoded table 90s ok 4 - draft4, MetaData: calculated keyword list matches hardcoded table 90s ok 5 - draft4, Validation: calculated keyword list matches hardcoded table 90s ok 6 - draft6, Applicator: calculated keyword list matches hardcoded table 90s ok 7 - draft6, Core: calculated keyword list matches hardcoded table 90s ok 8 - draft6, FormatAnnotation: calculated keyword list matches hardcoded table 90s ok 9 - draft6, MetaData: calculated keyword list matches hardcoded table 90s ok 10 - draft6, Validation: calculated keyword list matches hardcoded table 90s ok 11 - draft7, Applicator: calculated keyword list matches hardcoded table 90s ok 12 - draft7, Content: calculated keyword list matches hardcoded table 90s ok 13 - draft7, Core: calculated keyword list matches hardcoded table 90s ok 14 - draft7, FormatAnnotation: calculated keyword list matches hardcoded table 90s ok 15 - draft7, MetaData: calculated keyword list matches hardcoded table 90s ok 16 - draft7, Validation: calculated keyword list matches hardcoded table 90s ok 17 - draft2019-09, Applicator: calculated keyword list matches hardcoded table 90s ok 18 - draft2019-09, Content: calculated keyword list matches hardcoded table 90s ok 19 - draft2019-09, Core: calculated keyword list matches hardcoded table 90s ok 20 - draft2019-09, FormatAnnotation: calculated keyword list matches hardcoded table 90s ok 21 - draft2019-09, MetaData: calculated keyword list matches hardcoded table 90s ok 22 - draft2019-09, Validation: calculated keyword list matches hardcoded table 90s ok 23 - draft2020-12, Applicator: calculated keyword list matches hardcoded table 90s ok 24 - draft2020-12, Content: calculated keyword list matches hardcoded table 90s ok 25 - draft2020-12, Core: calculated keyword list matches hardcoded table 90s ok 26 - draft2020-12, FormatAnnotation: calculated keyword list matches hardcoded table 90s ok 27 - draft2020-12, MetaData: calculated keyword list matches hardcoded table 90s ok 28 - draft2020-12, Unevaluated: calculated keyword list matches hardcoded table 90s ok 29 - draft2020-12, Validation: calculated keyword list matches hardcoded table 90s 1..29 90s } 90s 1..1 90s ok 91s t/zzz-acceptance-draft2019-09-format.t .. 91s # Seeded srand with seed '20251102' from local date. 91s # 91s # AUTHOR_TESTING: 91s # AUTOMATED_TESTING: 1 91s # EXTENDED_TESTING: 91s # NO_TODO: 91s # TEST_DIR: 91s # NO_SHORT_CIRCUIT: 91s # 91s # Using JSON decoder: Cpanel::JSON::XS 4.39 91s # 91s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2019-09/optional/format against draft2019-09... 91s # 91s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date-time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 26 - date.json: "validation of date strings" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 27 - date.json: "validation of date strings" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 28 - date.json: "validation of date strings" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 29 - date.json: "validation of date strings" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 30 - date.json: "validation of date strings" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 31 - date.json: "validation of date strings" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 32 - date.json: "validation of date strings" - "a valid date string" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 33 - date.json: "validation of date strings" - "a valid date string with 31 days in January" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 34 - date.json: "validation of date strings" - "a invalid date string with 32 days in January" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 35 - date.json: "validation of date strings" - "a valid date string with 28 days in February (normal)" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 36 - date.json: "validation of date strings" - "a invalid date string with 29 days in February (normal)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 37 - date.json: "validation of date strings" - "a valid date string with 29 days in February (leap)" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 38 - date.json: "validation of date strings" - "a invalid date string with 30 days in February (leap)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 39 - date.json: "validation of date strings" - "a valid date string with 31 days in March" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 40 - date.json: "validation of date strings" - "a invalid date string with 32 days in March" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 41 - date.json: "validation of date strings" - "a valid date string with 30 days in April" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 42 - date.json: "validation of date strings" - "a invalid date string with 31 days in April" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 43 - date.json: "validation of date strings" - "a valid date string with 31 days in May" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 44 - date.json: "validation of date strings" - "a invalid date string with 32 days in May" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 45 - date.json: "validation of date strings" - "a valid date string with 30 days in June" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 46 - date.json: "validation of date strings" - "a invalid date string with 31 days in June" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 47 - date.json: "validation of date strings" - "a valid date string with 31 days in July" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 48 - date.json: "validation of date strings" - "a invalid date string with 32 days in July" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 49 - date.json: "validation of date strings" - "a valid date string with 31 days in August" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 50 - date.json: "validation of date strings" - "a invalid date string with 32 days in August" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 51 - date.json: "validation of date strings" - "a valid date string with 30 days in September" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 52 - date.json: "validation of date strings" - "a invalid date string with 31 days in September" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 53 - date.json: "validation of date strings" - "a valid date string with 31 days in October" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 54 - date.json: "validation of date strings" - "a invalid date string with 32 days in October" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 55 - date.json: "validation of date strings" - "a valid date string with 30 days in November" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 56 - date.json: "validation of date strings" - "a invalid date string with 31 days in November" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 57 - date.json: "validation of date strings" - "a valid date string with 31 days in December" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 58 - date.json: "validation of date strings" - "a invalid date string with 32 days in December" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 59 - date.json: "validation of date strings" - "a invalid date string with invalid month" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 60 - date.json: "validation of date strings" - "an invalid date string" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 61 - date.json: "validation of date strings" - "only RFC3339 not all of ISO 8601 are valid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 62 - date.json: "validation of date strings" - "non-padded month dates are not valid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 63 - date.json: "validation of date strings" - "non-padded day dates are not valid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 64 - date.json: "validation of date strings" - "invalid month" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 65 - date.json: "validation of date strings" - "invalid month-day combination" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 66 - date.json: "validation of date strings" - "2021 is not a leap year" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 67 - date.json: "validation of date strings" - "2020 is a leap year" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 68 - date.json: "validation of date strings" - "invalid non-ASCII '৪' (a Bengali 4)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 69 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 70 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 71 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 72 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid date string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 73 - duration.json: "validation of duration strings" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 74 - duration.json: "validation of duration strings" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 75 - duration.json: "validation of duration strings" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 76 - duration.json: "validation of duration strings" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 77 - duration.json: "validation of duration strings" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 78 - duration.json: "validation of duration strings" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 79 - duration.json: "validation of duration strings" - "a valid duration string" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 80 - duration.json: "validation of duration strings" - "an invalid duration string" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 81 - duration.json: "validation of duration strings" - "must start with P" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 82 - duration.json: "validation of duration strings" - "no elements present" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 83 - duration.json: "validation of duration strings" - "no time elements present" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 84 - duration.json: "validation of duration strings" - "no date or time elements present" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 85 - duration.json: "validation of duration strings" - "elements out of order" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 86 - duration.json: "validation of duration strings" - "missing time separator" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 87 - duration.json: "validation of duration strings" - "time element in the date position" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 88 - duration.json: "validation of duration strings" - "four years duration" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 89 - duration.json: "validation of duration strings" - "zero time, in seconds" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 90 - duration.json: "validation of duration strings" - "zero time, in days" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 91 - duration.json: "validation of duration strings" - "one month duration" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 92 - duration.json: "validation of duration strings" - "one minute duration" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 93 - duration.json: "validation of duration strings" - "one and a half days, in hours" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 94 - duration.json: "validation of duration strings" - "one and a half days, in days and hours" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 95 - duration.json: "validation of duration strings" - "two weeks" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 96 - duration.json: "validation of duration strings" - "weeks cannot be combined with other units" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 97 - duration.json: "validation of duration strings" - "invalid non-ASCII '২' (a Bengali 2)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 98 - duration.json: "validation of duration strings" - "element without unit" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid duration string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 99 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 100 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 101 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 102 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 103 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 104 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 105 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 106 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 107 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 108 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 109 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 110 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 111 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 112 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 113 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 114 - hostname.json: "validation of host names" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 115 - hostname.json: "validation of host names" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 116 - hostname.json: "validation of host names" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 117 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 118 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 119 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 120 - hostname.json: "validation of host names" - "a valid host name" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 121 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 122 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 123 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 124 - hostname.json: "validation of host names" - "a host name with a component too long" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 125 - hostname.json: "validation of host names" - "starts with hyphen" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 126 - hostname.json: "validation of host names" - "ends with hyphen" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 127 - hostname.json: "validation of host names" - "starts with underscore" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 128 - hostname.json: "validation of host names" - "ends with underscore" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 129 - hostname.json: "validation of host names" - "contains underscore" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 130 - hostname.json: "validation of host names" - "maximum label length" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 131 - hostname.json: "validation of host names" - "exceeds maximum label length" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 132 - hostname.json: "validation of host names" - "single label" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 133 - hostname.json: "validation of host names" - "single label with hyphen" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 134 - hostname.json: "validation of host names" - "single label with digits" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 135 - hostname.json: "validation of host names" - "single label starting with digit" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 136 - hostname.json: "validation of host names" - "single label ending with digit" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 137 - hostname.json: "validation of host names" - "empty string" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 138 - hostname.json: "validation of host names" - "single dot" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 139 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 140 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 141 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 142 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 143 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 144 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 145 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid idn e-mail (example@example.test in Hangul)" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 146 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid idn e-mail address" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 147 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid e-mail address" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 148 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid e-mail address" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-email string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 149 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 150 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 151 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 152 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 153 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 154 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s 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" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s 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" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s 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" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "실〮례.테스트" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s 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" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 159 - idn-hostname.json: "validation of internationalized host names" - "invalid label, correct Punycode" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 160 - idn-hostname.json: "validation of internationalized host names" - "valid Chinese Punycode" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 161 - idn-hostname.json: "validation of internationalized host names" - "invalid Punycode" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "xn--X" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s 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" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "XN--aa---o47jg78q" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s ok 163 - idn-hostname.json: "validation of internationalized host names" - "U-label starts with a dash" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 164 - idn-hostname.json: "validation of internationalized host names" - "U-label ends with a dash" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s 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" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 166 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Spacing Combining Mark" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 167 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Nonspacing Mark" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 168 - idn-hostname.json: "validation of internationalized host names" - "Begins with an Enclosing Mark" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s 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" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s 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" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s 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" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "ـߺ" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s 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" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "〱〲〳〴〵〮〯〻" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s ok 173 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no preceding 'l'" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "a·l" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s ok 174 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing preceding" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "·l" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s ok 175 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no following 'l'" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "l·a" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s ok 176 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing following" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "l·" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s ok 177 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with surrounding 'l's" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 178 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by Greek" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "α͵S" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s ok 179 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by anything" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "α͵" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s ok 180 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA followed by Greek" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 181 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 182 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by anything" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "׳ב" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s ok 183 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 184 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 185 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by anything" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "״ב" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s ok 186 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s 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" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "def・abc" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s ok 188 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no other characters" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "idn-hostname" 91s # } 91s # data: "・" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s ok 189 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Hiragana" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 190 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Katakana" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 191 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Han" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s 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" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s 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" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s 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" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 195 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by Virama" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 196 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by anything" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 197 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 198 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s 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" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 200 - idn-hostname.json: "validation of internationalized host names" - "single label" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 201 - idn-hostname.json: "validation of internationalized host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 202 - idn-hostname.json: "validation of internationalized host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 203 - idn-hostname.json: "validation of internationalized host names" - "single label starting with digit" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 204 - idn-hostname.json: "validation of internationalized host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 205 - idn-hostname.json: "validation of internationalized host names" - "empty string" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false # 91s 1..1 91s } 91s ok 206 - idn-hostname.json: "validation of separators in internationalized host names" - "single dot" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 207 - idn-hostname.json: "validation of separators in internationalized host names" - "single ideographic full stop" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 208 - idn-hostname.json: "validation of separators in internationalized host names" - "single fullwidth full stop" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 209 - idn-hostname.json: "validation of separators in internationalized host names" - "single halfwidth ideographic full stop" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid idn-hostname string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 210 - idn-hostname.json: "validation of separators in internationalized host names" - "dot as label separator" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 211 - idn-hostname.json: "validation of separators in internationalized host names" - "ideographic full stop as label separator" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 212 - idn-hostname.json: "validation of separators in internationalized host names" - "fullwidth full stop as label separator" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 213 - idn-hostname.json: "validation of separators in internationalized host names" - "halfwidth ideographic full stop as label separator" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s # 91s ok 214 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 215 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 216 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 217 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 218 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 219 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 220 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 221 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 222 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 223 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 224 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 225 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 226 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 227 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 228 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 229 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv4 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 230 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 231 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 232 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 233 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 234 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 235 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 236 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 237 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 238 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 239 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 240 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 241 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 242 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 243 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 244 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 245 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 246 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 247 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 248 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 249 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 250 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 251 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 252 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 253 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 254 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 255 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 256 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 257 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 258 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 259 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 260 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 261 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 262 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 263 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 264 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 265 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 266 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 267 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 268 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 269 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid ipv6 string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 270 - iri-reference.json: "validation of IRI References" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 271 - iri-reference.json: "validation of IRI References" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 272 - iri-reference.json: "validation of IRI References" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 273 - iri-reference.json: "validation of IRI References" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 274 - iri-reference.json: "validation of IRI References" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 275 - iri-reference.json: "validation of IRI References" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 276 - iri-reference.json: "validation of IRI References" - "a valid IRI" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 277 - iri-reference.json: "validation of IRI References" - "a valid protocol-relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 278 - iri-reference.json: "validation of IRI References" - "a valid relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 279 - iri-reference.json: "validation of IRI References" - "an invalid IRI Reference" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "iri-reference" 91s # } 91s # data: "\\\\WINDOWS\\filëßåré" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s ok 280 - iri-reference.json: "validation of IRI References" - "a valid IRI Reference" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 281 - iri-reference.json: "validation of IRI References" - "a valid IRI fragment" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true # 91s 1..1 91s } 91s ok 282 - iri-reference.json: "validation of IRI References" - "an invalid IRI fragment" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "iri-reference" 91s # } 91s # data: "#ƒräg\\mênt" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s # 91s ok 283 - iri.json: "validation of IRIs" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 284 - iri.json: "validation of IRIs" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 285 - iri.json: "validation of IRIs" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 286 - iri.json: "validation of IRIs" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 287 - iri.json: "validation of IRIs" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 288 - iri.json: "validation of IRIs" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 289 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 290 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag and parentheses" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 291 - iri.json: "validation of IRIs" - "a valid IRI with URL-encoded stuff" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 292 - iri.json: "validation of IRIs" - "a valid IRI with many special characters" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 293 - iri.json: "validation of IRIs" - "a valid IRI based on IPv6" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 294 - iri.json: "validation of IRIs" - "an invalid IRI based on IPv6" { # TODO Test marked TODO via "todo_tests" 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s not ok 1 - evaluation result is incorrect # 91s # Failed test (with amnesty) 'evaluation result is incorrect' 91s # at t/zzz-acceptance-draft2019-09-format.t line 70. 91s # expected false; got true 91s # schema: { 91s # "$schema": "https://json-schema.org/draft/2019-09/schema", 91s # "format": "iri" 91s # } 91s # data: "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334" 91s # result: { 91s # "valid": true 91s # } 91s 1..1 91s } 91s ok 295 - iri.json: "validation of IRIs" - "an invalid relative IRI Reference" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid iri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid iri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 296 - iri.json: "validation of IRIs" - "an invalid IRI" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid iri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid iri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 297 - iri.json: "validation of IRIs" - "an invalid IRI though valid IRI reference" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid iri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid iri string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 298 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 299 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 300 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 301 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 302 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 303 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 304 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 305 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 306 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 307 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 308 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 309 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 310 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 311 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 312 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 313 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 314 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 315 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 316 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 317 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 318 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 319 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 320 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 321 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 322 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 323 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 324 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 325 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 326 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 327 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 328 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 329 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 330 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 331 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 332 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 333 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 334 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 335 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 336 - regex.json: "validation of regular expressions" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 337 - regex.json: "validation of regular expressions" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 338 - regex.json: "validation of regular expressions" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 339 - regex.json: "validation of regular expressions" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 340 - regex.json: "validation of regular expressions" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 341 - regex.json: "validation of regular expressions" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 342 - regex.json: "validation of regular expressions" - "a valid regular expression" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 343 - regex.json: "validation of regular expressions" - "a regular expression with unclosed parens is invalid" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid regex string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid regex string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s # 91s ok 344 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 345 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 346 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 347 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 348 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 349 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 350 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid upwards RJP" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 351 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid downwards RJP" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 352 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid up and then down RJP, with array index" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 353 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid RJP taking the member or index name" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 354 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "an invalid RJP that is a valid JSON Pointer" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 355 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "negative prefix" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 356 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "explicit positive prefix" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 357 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "\#\# is not a valid json-pointer" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 358 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus json-pointer" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 359 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus octothorpe" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 360 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "empty string" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid relative-json-pointer string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 361 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "multi-digit integer prefix" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s # 91s ok 362 - time.json: "validation of time strings" - "all string formats ignore integers" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 363 - time.json: "validation of time strings" - "all string formats ignore floats" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 364 - time.json: "validation of time strings" - "all string formats ignore objects" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 365 - time.json: "validation of time strings" - "all string formats ignore arrays" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 366 - time.json: "validation of time strings" - "all string formats ignore booleans" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 367 - time.json: "validation of time strings" - "all string formats ignore nulls" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 368 - time.json: "validation of time strings" - "a valid time string" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 369 - time.json: "validation of time strings" - "invalid time string with extra leading zeros" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 370 - time.json: "validation of time strings" - "invalid time string with no leading zero for single digit" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 371 - time.json: "validation of time strings" - "hour, minute, second must be two digits" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 372 - time.json: "validation of time strings" - "a valid time string with leap second, Zulu" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 373 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 374 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 375 - time.json: "validation of time strings" - "valid leap second, zero time-offset" { 91s # result: { 91s # "valid": true 91s # } 91s # short-circuited result: { 91s # "valid": true 91s # } 91s ok 1 - test passes: data is valid: true 91s 1..1 91s } 91s ok 376 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong hour)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 377 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong minute)" { 91s # result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s # short-circuited result: { 91s # "errors": [ 91s # { 91s # "error": "not a valid time string", 91s # "instanceLocation": "", 91s # "keywordLocation": "/format" 91s # } 91s # ], 91s # "valid": false 91s # } 91s ok 1 - test passes: data is valid: false 91s 1..1 91s } 91s ok 378 - time.json: "validation of time strings" - "valid leap second, positive time-offset" { 91s # result: { 91s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 379 - time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 380 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 381 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 382 - time.json: "validation of time strings" - "valid leap second, negative time-offset" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 383 - time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 384 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 385 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 386 - time.json: "validation of time strings" - "a valid time string with second fraction" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 387 - time.json: "validation of time strings" - "a valid time string with precise second fraction" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 388 - time.json: "validation of time strings" - "a valid time string with plus offset" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 389 - time.json: "validation of time strings" - "a valid time string with minus offset" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 390 - time.json: "validation of time strings" - "hour, minute in time-offset must be two digits" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 391 - time.json: "validation of time strings" - "a valid time string with case-insensitive Z" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 392 - time.json: "validation of time strings" - "an invalid time string with invalid hour" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 393 - time.json: "validation of time strings" - "an invalid time string with invalid minute" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 394 - time.json: "validation of time strings" - "an invalid time string with invalid second" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 395 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong hour)" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 396 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong minute)" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 397 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset hour" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 398 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset minute" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 399 - time.json: "validation of time strings" - "an invalid time string with invalid time with both Z and numoffset" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 400 - time.json: "validation of time strings" - "an invalid offset indicator" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 401 - time.json: "validation of time strings" - "only RFC3339 not all of ISO 8601 are valid" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 402 - time.json: "validation of time strings" - "no time offset" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 403 - time.json: "validation of time strings" - "no time offset with second fraction" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 404 - time.json: "validation of time strings" - "invalid non-ASCII '২' (a Bengali 2)" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 405 - time.json: "validation of time strings" - "offset not starting with plus or minus" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 406 - time.json: "validation of time strings" - "contains letters" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid time string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s # 92s ok 407 - unknown.json: "unknown format" - "unknown formats ignore integers" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 408 - unknown.json: "unknown format" - "unknown formats ignore floats" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 409 - unknown.json: "unknown format" - "unknown formats ignore objects" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 410 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 411 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 412 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 413 - unknown.json: "unknown format" - "unknown formats ignore strings" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s # 92s ok 414 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 415 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 416 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 417 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 418 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 419 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 420 - uri-reference.json: "validation of URI References" - "a valid URI" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 421 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 422 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 423 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uri-reference string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uri-reference string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 424 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 425 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 426 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uri-reference string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uri-reference string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s # 92s ok 427 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true # 92s 1..1 92s } 92s ok 428 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true # 92s 1..1 92s } 92s ok 429 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true # 92s 1..1 92s } 92s ok 430 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true # 92s 1..1 92s } 92s ok 431 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true # 92s 1..1 92s } 92s ok 432 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true # 92s 1..1 92s } 92s ok 433 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true # 92s 1..1 92s } 92s ok 434 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s not ok 1 - evaluation result is incorrect # 92s # Failed test (with amnesty) 'evaluation result is incorrect' 92s # at t/zzz-acceptance-draft2019-09-format.t line 70. 92s # expected false; got true 92s # schema: { 92s # "$schema": "https://json-schema.org/draft/2019-09/schema", 92s # "format": "uri-template" 92s # } 92s # data: "http://example.com/dictionary/{term:1}/{term" 92s # result: { 92s # "valid": true 92s # } 92s 1..1 92s } 92s ok 435 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true # 92s 1..1 92s } 92s ok 436 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true # 92s 1..1 92s } 92s # 92s ok 437 - uri.json: "validation of URIs" - "all string formats ignore integers" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 438 - uri.json: "validation of URIs" - "all string formats ignore floats" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 439 - uri.json: "validation of URIs" - "all string formats ignore objects" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 440 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 441 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 442 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 443 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 444 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 445 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 446 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 447 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 448 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 449 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 450 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 451 - uri.json: "validation of URIs" - "a valid URL " { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 452 - uri.json: "validation of URIs" - "a valid mailto URI" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 453 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 454 - uri.json: "validation of URIs" - "a valid tel URI" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 455 - uri.json: "validation of URIs" - "a valid URN" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 456 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uri string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uri string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 457 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uri string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uri string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 458 - uri.json: "validation of URIs" - "an invalid URI" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uri string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uri string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 459 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uri string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uri string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 460 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uri string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uri string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 461 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uri string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uri string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 462 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s not ok 1 - evaluation result is incorrect # 92s # Failed test (with amnesty) 'evaluation result is incorrect' 92s # at t/zzz-acceptance-draft2019-09-format.t line 70. 92s # expected false; got true 92s # schema: { 92s # "$schema": "https://json-schema.org/draft/2019-09/schema", 92s # "format": "uri" 92s # } 92s # data: "bar,baz:foo" 92s # result: { 92s # "valid": true 92s # } 92s 1..1 92s } 92s # 92s ok 463 - uuid.json: "uuid format" - "all string formats ignore integers" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 464 - uuid.json: "uuid format" - "all string formats ignore floats" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 465 - uuid.json: "uuid format" - "all string formats ignore objects" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 466 - uuid.json: "uuid format" - "all string formats ignore arrays" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 467 - uuid.json: "uuid format" - "all string formats ignore booleans" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 468 - uuid.json: "uuid format" - "all string formats ignore nulls" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 469 - uuid.json: "uuid format" - "all upper-case" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 470 - uuid.json: "uuid format" - "all lower-case" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 471 - uuid.json: "uuid format" - "mixed case" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 472 - uuid.json: "uuid format" - "all zeroes is valid" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 473 - uuid.json: "uuid format" - "wrong length" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uuid string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uuid string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 474 - uuid.json: "uuid format" - "missing section" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uuid string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uuid string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 475 - uuid.json: "uuid format" - "bad characters (not hex)" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uuid string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uuid string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 476 - uuid.json: "uuid format" - "no dashes" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uuid string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uuid string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 477 - uuid.json: "uuid format" - "too few dashes" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uuid string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uuid string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 478 - uuid.json: "uuid format" - "too many dashes" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uuid string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uuid string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 479 - uuid.json: "uuid format" - "dashes in the wrong spot" { 92s # result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uuid string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s # short-circuited result: { 92s # "errors": [ 92s # { 92s # "error": "not a valid uuid string", 92s # "instanceLocation": "", 92s # "keywordLocation": "/format" 92s # } 92s # ], 92s # "valid": false 92s # } 92s ok 1 - test passes: data is valid: false 92s 1..1 92s } 92s ok 480 - uuid.json: "uuid format" - "valid version 4" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 481 - uuid.json: "uuid format" - "valid version 5" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 482 - uuid.json: "uuid format" - "hypothetical version 6" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s ok 483 - uuid.json: "uuid format" - "hypothetical version 15" { 92s # result: { 92s # "valid": true 92s # } 92s # short-circuited result: { 92s # "valid": true 92s # } 92s ok 1 - test passes: data is valid: true 92s 1..1 92s } 92s # 92s # generated with: Test::JSON::Schema::Acceptance 1.029 92s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 92s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 92s # specification version: draft2019-09 92s # using custom test directory: /optional/format 92s # optional tests included: yes 92s # 92s # filename pass todo-fail fail 92s # --------------------------------------------------------------- 92s # date-time.json 25 0 0 92s # date.json 47 0 0 92s # duration.json 26 0 0 92s # email.json 15 0 0 92s # hostname.json 25 0 0 92s # idn-email.json 10 0 0 92s # idn-hostname.json 50 15 0 92s # ipv4.json 16 0 0 92s # ipv6.json 40 0 0 92s # iri-reference.json 11 2 0 92s # iri.json 14 1 0 92s # json-pointer.json 38 0 0 92s # regex.json 8 0 0 92s # relative-json-pointer.json 18 0 0 92s # time.json 45 0 0 92s # unknown.json 7 0 0 92s # uri-reference.json 13 0 0 92s # uri-template.json 9 1 0 92s # uri.json 25 1 0 92s # uuid.json 21 0 0 92s # --------------------------------------------------------------- 92s # TOTAL 463 20 0 92s # 92s # Congratulations, all non-optional tests are passing! 92s # 92s ok 484 - no leaks in the main evaluator object 92s ok 485 - no leaks in the short-circuiting evaluator object 92s 1..485 92s ok 97s t/zzz-acceptance-draft2019-09.t ......... 97s # Seeded srand with seed '20251102' from local date. 97s # 97s # AUTHOR_TESTING: 97s # AUTOMATED_TESTING: 1 97s # EXTENDED_TESTING: 97s # NO_TODO: 97s # TEST_DIR: 97s # NO_SHORT_CIRCUIT: 97s # 97s # Using JSON decoder: Cpanel::JSON::XS 4.39 97s # 97s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 97s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2019-09 against draft2019-09... 97s # 97s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/additionalItems/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/additionalItems/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "valid with a array of type integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 4 - additionalItems.json: "when items is schema, additionalItems does nothing" - "invalid with a array of mixed types" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/type" 97s # }, 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 5 - additionalItems.json: "when items is schema, boolean additionalItems does nothing" - "all items match schema" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 9 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 10 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/additionalItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/additionalItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 11 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 12 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 13 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 14 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 15 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not boolean", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/additionalItems/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not boolean", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/additionalItems/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 16 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 17 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/additionalItems/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/additionalItems/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 18 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/additionalItems" 97s # }, 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/additionalItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/additionalItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 19 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 20 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/quux", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/quux", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 25 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 26 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 27 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 28 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/élmény", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/élmény", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 29 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 30 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 31 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "/quux", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "/quux", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 32 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 33 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 34 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 35 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 36 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 37 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against both keywords" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 38 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against propertyNames, but not additionalProperties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/pear", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/pear", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 39 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties doesn't consider dependentSchemas" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 40 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 41 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar even when foo2 is present" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 42 - allOf.json: "allOf" - "allOf" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 43 - allOf.json: "allOf" - "mismatch second" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/required" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/required" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 44 - allOf.json: "allOf" - "mismatch first" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/required" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/required" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 45 - allOf.json: "allOf" - "wrong type" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/allOf/0/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/properties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/allOf/0/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/properties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 46 - allOf.json: "allOf with base schema" - "valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 47 - allOf.json: "allOf with base schema" - "mismatch base schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 48 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/required" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/required" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 49 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: baz", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/required" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: baz", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/required" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 50 - allOf.json: "allOf with base schema" - "mismatch both" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/required" 97s # }, 97s # { 97s # "error": "object is missing property: baz", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/required" 97s # }, 97s # { 97s # "error": "subschemas 0, 1 are not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/required" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 51 - allOf.json: "allOf simple types" - "valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 52 - allOf.json: "allOf simple types" - "mismatch one" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 30", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/maximum" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 30", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/maximum" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 53 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 54 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 55 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0" 97s # }, 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1" 97s # }, 97s # { 97s # "error": "subschemas 0, 1 are not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 56 - allOf.json: "allOf with one empty schema" - "any data is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 57 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 58 - allOf.json: "allOf with the first empty schema" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 59 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/type" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/type" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 60 - allOf.json: "allOf with the last empty schema" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 61 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/type" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/type" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 62 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 63 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/allOf/0/type" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/allOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/allOf/0/type" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/allOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 64 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 5", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 65 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 66 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 5", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 67 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 68 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 5", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 69 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 70 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 5", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 5", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/multipleOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 71 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 72 - anchor.json: "Location-independent identifier" - "match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 73 - anchor.json: "Location-independent identifier" - "mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/A/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/A/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 74 - anchor.json: "Location-independent identifier with absolute URI" - "match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 75 - anchor.json: "Location-independent identifier with absolute URI" - "mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/bar#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/bar#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 76 - anchor.json: "Location-independent identifier with base URI change in subschema" - "match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 77 - anchor.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested.json#/$defs/B/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested.json#/$defs/B/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 78 - anchor.json: "same $anchor with different base uri" - "$ref resolves to /$defs/A/allOf/1" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 79 - anchor.json: "same $anchor with different base uri" - "$ref does not resolve to /$defs/A/allOf/0" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/child1#/allOf/1/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/child1#/allOf/1/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 80 - anyOf.json: "anyOf" - "first anyOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 81 - anyOf.json: "anyOf" - "second anyOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 82 - anyOf.json: "anyOf" - "both anyOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 83 - anyOf.json: "anyOf" - "neither anyOf valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "error": "value is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/minimum" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "error": "value is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/minimum" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 84 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 85 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 86 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "length is greater than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/maxLength" 97s # }, 97s # { 97s # "error": "length is less than 4", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/minLength" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "length is greater than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/maxLength" 97s # }, 97s # { 97s # "error": "length is less than 4", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/minLength" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 87 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 88 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 89 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0" 97s # }, 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0" 97s # }, 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 90 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 91 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 92 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 93 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/anyOf/0/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/properties" 97s # }, 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/properties/foo/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/properties" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/anyOf/0/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/properties" 97s # }, 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/properties/foo/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/properties" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 94 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 95 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 96 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 97 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/anyOf/0/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/anyOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/anyOf/0/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/anyOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 98 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 99 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 100 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 101 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 102 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 103 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 104 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 105 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 106 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 107 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 108 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 109 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 110 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 111 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 112 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 113 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 114 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 115 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 116 - const.json: "const validation" - "same value is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 117 - const.json: "const validation" - "another value is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 118 - const.json: "const validation" - "another type is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 119 - const.json: "const with object" - "same object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 120 - const.json: "const with object" - "same object with different property order is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 121 - const.json: "const with object" - "another object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 122 - const.json: "const with object" - "another type is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 123 - const.json: "const with array" - "same array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 124 - const.json: "const with array" - "another array item is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs object)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs object)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 125 - const.json: "const with array" - "array with additional items is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 126 - const.json: "const with null" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 127 - const.json: "const with null" - "not null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 128 - const.json: "const with false does not match 0" - "false is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 129 - const.json: "const with false does not match 0" - "integer zero is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 130 - const.json: "const with false does not match 0" - "float zero is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 131 - const.json: "const with true does not match 1" - "true is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 132 - const.json: "const with true does not match 1" - "integer one is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 133 - const.json: "const with true does not match 1" - "float one is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 134 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 135 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 136 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 137 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 138 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 139 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 140 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 141 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 142 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 143 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 144 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 145 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 146 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 147 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 148 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 149 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 150 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 151 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 152 - const.json: "const with 1 does not match true" - "true is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 153 - const.json: "const with 1 does not match true" - "integer one is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 154 - const.json: "const with 1 does not match true" - "float one is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 155 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 156 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 157 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 158 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 159 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 160 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 161 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 162 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 163 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 164 - const.json: "nul characters in strings" - "match string with nul" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 165 - const.json: "nul characters in strings" - "do not match string lacking nul" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/const" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 166 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 167 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 168 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 169 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than 5", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/minimum" 97s # }, 97s # { 97s # "error": "value is less than 5", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/contains/minimum" 97s # }, 97s # { 97s # "error": "value is less than 5", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/contains/minimum" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than 5", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/minimum" 97s # }, 97s # { 97s # "error": "value is less than 5", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/contains/minimum" 97s # }, 97s # { 97s # "error": "value is less than 5", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/contains/minimum" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 170 - contains.json: "contains keyword validation" - "empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 171 - contains.json: "contains keyword validation" - "not array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 172 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 173 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 174 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 175 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 176 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 177 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 178 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 179 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 180 - contains.json: "items + contains" - "matches items, does not match contains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/multipleOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/contains/multipleOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/contains/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/multipleOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/contains/multipleOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/contains/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 181 - contains.json: "items + contains" - "does not match items, matches contains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/multipleOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/items/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 182 - contains.json: "items + contains" - "matches both items and contains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 183 - contains.json: "items + contains" - "matches neither items nor contains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/multipleOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # }, 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/multipleOf" 97s # }, 97s # { 97s # "error": "value is not a multiple of 3", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/contains/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 184 - contains.json: "contains with false if subschema" - "any non-empty array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 185 - contains.json: "contains with false if subschema" - "empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 186 - contains.json: "contains with null instance elements" - "allows null items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 187 - content.json: "validation of string-encoded content based on media type" - "a valid JSON document" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 188 - content.json: "validation of string-encoded content based on media type" - "an invalid JSON document; validates true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 189 - content.json: "validation of string-encoded content based on media type" - "ignores non-strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 190 - content.json: "validation of binary string-encoding" - "a valid base64 string" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 191 - content.json: "validation of binary string-encoding" - "an invalid base64 string (% is not a valid character); validates true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 192 - content.json: "validation of binary string-encoding" - "ignores non-strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 193 - content.json: "validation of binary-encoded media type documents" - "a valid base64-encoded JSON document" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 194 - content.json: "validation of binary-encoded media type documents" - "a validly-encoded invalid JSON document; validates true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 195 - content.json: "validation of binary-encoded media type documents" - "an invalid base64 string that is valid JSON; validates true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 196 - content.json: "validation of binary-encoded media type documents" - "ignores non-strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 197 - content.json: "validation of binary-encoded media type documents with schema" - "a valid base64-encoded JSON document" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 198 - content.json: "validation of binary-encoded media type documents with schema" - "another valid base64-encoded JSON document" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 199 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64-encoded JSON document; validates true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 200 - content.json: "validation of binary-encoded media type documents with schema" - "an empty object as a base64-encoded JSON document; validates true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 201 - content.json: "validation of binary-encoded media type documents with schema" - "an empty array as a base64-encoded JSON document" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 202 - content.json: "validation of binary-encoded media type documents with schema" - "a validly-encoded invalid JSON document; validates true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 203 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64 string that is valid JSON; validates true" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 204 - content.json: "validation of binary-encoded media type documents with schema" - "ignores non-strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 205 - default.json: "invalid type for default" - "valid when property is specified" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 206 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 207 - default.json: "invalid string value for default" - "valid when property is specified" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 208 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s 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)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s 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)" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 3", 97s # "instanceLocation": "/alpha", 97s # "keywordLocation": "/properties/alpha/maximum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 3", 97s # "instanceLocation": "/alpha", 97s # "keywordLocation": "/properties/alpha/maximum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s 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" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 212 - defs.json: "validate definition against metaschema" - "valid definition schema" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 213 - defs.json: "validate definition against metaschema" - "invalid definition schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/simpleTypes/enum", 97s # "error": "value does not match", 97s # "instanceLocation": "/$defs/foo/type", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/0/$ref/enum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf/1/type", 97s # "error": "got integer, not array", 97s # "instanceLocation": "/$defs/foo/type", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/$defs/foo/type", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/$defs/foo", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 97s # "error": "subschema 2 is not valid", 97s # "instanceLocation": "/$defs/foo", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties/$defs/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/$defs", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/simpleTypes/enum", 97s # "error": "value does not match", 97s # "instanceLocation": "/$defs/foo/type", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/0/$ref/enum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf/1/type", 97s # "error": "got integer, not array", 97s # "instanceLocation": "/$defs/foo/type", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/$defs/foo/type", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/$defs/foo", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 97s # "error": "subschema 2 is not valid", 97s # "instanceLocation": "/$defs/foo", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties/$defs/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/$defs", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 214 - dependentRequired.json: "single dependency" - "neither" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 215 - dependentRequired.json: "single dependency" - "nondependant" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 216 - dependentRequired.json: "single dependency" - "with dependency" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 217 - dependentRequired.json: "single dependency" - "missing dependency" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/bar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/bar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 218 - dependentRequired.json: "single dependency" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 219 - dependentRequired.json: "single dependency" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 220 - dependentRequired.json: "single dependency" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 221 - dependentRequired.json: "empty dependents" - "empty object" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 222 - dependentRequired.json: "empty dependents" - "object with one property" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 223 - dependentRequired.json: "empty dependents" - "non-object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 224 - dependentRequired.json: "multiple dependents required" - "neither" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 225 - dependentRequired.json: "multiple dependents required" - "nondependants" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 226 - dependentRequired.json: "multiple dependents required" - "with dependencies" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 227 - dependentRequired.json: "multiple dependents required" - "missing dependency" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/quux" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/quux" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 228 - dependentRequired.json: "multiple dependents required" - "missing other dependency" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/quux" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/quux" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 229 - dependentRequired.json: "multiple dependents required" - "missing both dependencies" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: foo, bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/quux" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: foo, bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/quux" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 230 - dependentRequired.json: "dependencies with escaped characters" - "CRLF" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 231 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 232 - dependentRequired.json: "dependencies with escaped characters" - "CRLF missing dependent" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo\rbar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/foo\nbar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo\rbar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/foo\nbar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 233 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo'bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/foo\"bar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo'bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired/foo\"bar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentRequired" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 234 - dependentSchemas.json: "single dependency" - "valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 235 - dependentSchemas.json: "single dependency" - "no dependency" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 236 - dependentSchemas.json: "single dependency" - "wrong type" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar/properties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar/properties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 237 - dependentSchemas.json: "single dependency" - "wrong type other" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar/properties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar/properties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 238 - dependentSchemas.json: "single dependency" - "wrong type both" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 97s # }, 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar/properties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar/properties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 239 - dependentSchemas.json: "single dependency" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 240 - dependentSchemas.json: "single dependency" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 241 - dependentSchemas.json: "single dependency" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 242 - dependentSchemas.json: "boolean subschemas" - "object with property having schema true is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 243 - dependentSchemas.json: "boolean subschemas" - "object with property having schema false is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 244 - dependentSchemas.json: "boolean subschemas" - "object with both properties is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/bar" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 245 - dependentSchemas.json: "boolean subschemas" - "empty object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 246 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 247 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo\"bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo'bar/required" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo\"bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo'bar/required" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 248 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab invalid under dependent schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object has fewer than 4 properties", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object has fewer than 4 properties", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 249 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote invalid under dependent schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo\"bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo'bar/required" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo\"bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo'bar/required" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 250 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches root" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 251 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches dependency" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 252 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches both" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 97s # }, 97s # { 97s # "error": "not all dependencies are satisfied", 97s # "instanceLocation": "", 97s # "keywordLocation": "/dependentSchemas" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 253 - dependentSchemas.json: "dependent subschema incompatible with root" - "no dependency" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 254 - enum.json: "simple enum validation" - "one of the enum is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 255 - enum.json: "simple enum validation" - "something else is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 256 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 257 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 258 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 97s # result: { 97s # "errors": [ 97s # { 97s # "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)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "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)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 259 - enum.json: "heterogeneous enum validation" - "valid object matches" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 260 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 261 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 262 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 263 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 264 - enum.json: "enums in properties" - "both properties are valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 265 - enum.json: "enums in properties" - "wrong foo value" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/enum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/enum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 266 - enum.json: "enums in properties" - "wrong bar value" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/enum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/enum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 267 - enum.json: "enums in properties" - "missing optional property is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 268 - enum.json: "enums in properties" - "missing required property is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 269 - enum.json: "enums in properties" - "missing all properties is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 270 - enum.json: "enum with escaped characters" - "member 1 is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 271 - enum.json: "enum with escaped characters" - "member 2 is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 272 - enum.json: "enum with escaped characters" - "another string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 273 - enum.json: "enum with false does not match 0" - "false is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 274 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 275 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 276 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 277 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 278 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 279 - enum.json: "enum with true does not match 1" - "true is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 280 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 281 - enum.json: "enum with true does not match 1" - "float one is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 282 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 283 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 284 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 285 - enum.json: "enum with 0 does not match false" - "false is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 286 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 287 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 288 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 289 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 290 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 291 - enum.json: "enum with 1 does not match true" - "true is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 292 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 293 - enum.json: "enum with 1 does not match true" - "float one is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 294 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 295 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 296 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 297 - enum.json: "nul characters in strings" - "match string with nul" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 298 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 299 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 300 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than or equal to 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMaximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than or equal to 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMaximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 301 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than or equal to 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMaximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than or equal to 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMaximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 302 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 303 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 304 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than or equal to 1.1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMinimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than or equal to 1.1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMinimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 305 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than or equal to 1.1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMinimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than or equal to 1.1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMinimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 306 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 307 - format.json: "email format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 308 - format.json: "email format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 309 - format.json: "email format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 310 - format.json: "email format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 311 - format.json: "email format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 312 - format.json: "email format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 313 - format.json: "idn-email format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 314 - format.json: "idn-email format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 315 - format.json: "idn-email format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 316 - format.json: "idn-email format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 317 - format.json: "idn-email format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 318 - format.json: "idn-email format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 319 - format.json: "regex format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 320 - format.json: "regex format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 321 - format.json: "regex format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 322 - format.json: "regex format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 323 - format.json: "regex format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 324 - format.json: "regex format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 325 - format.json: "ipv4 format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 326 - format.json: "ipv4 format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 327 - format.json: "ipv4 format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 328 - format.json: "ipv4 format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 329 - format.json: "ipv4 format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 330 - format.json: "ipv4 format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 331 - format.json: "ipv6 format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 332 - format.json: "ipv6 format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 333 - format.json: "ipv6 format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 334 - format.json: "ipv6 format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 335 - format.json: "ipv6 format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 336 - format.json: "ipv6 format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 337 - format.json: "idn-hostname format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 338 - format.json: "idn-hostname format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 339 - format.json: "idn-hostname format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 340 - format.json: "idn-hostname format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 341 - format.json: "idn-hostname format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 342 - format.json: "idn-hostname format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 343 - format.json: "hostname format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 344 - format.json: "hostname format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 345 - format.json: "hostname format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 346 - format.json: "hostname format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 347 - format.json: "hostname format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 348 - format.json: "hostname format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 349 - format.json: "date format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 350 - format.json: "date format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 351 - format.json: "date format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 352 - format.json: "date format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 353 - format.json: "date format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 354 - format.json: "date format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 355 - format.json: "date-time format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 356 - format.json: "date-time format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 357 - format.json: "date-time format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 358 - format.json: "date-time format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 359 - format.json: "date-time format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 360 - format.json: "date-time format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 361 - format.json: "time format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 362 - format.json: "time format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 363 - format.json: "time format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 364 - format.json: "time format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 365 - format.json: "time format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 366 - format.json: "time format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 367 - format.json: "json-pointer format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 368 - format.json: "json-pointer format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 369 - format.json: "json-pointer format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 370 - format.json: "json-pointer format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 371 - format.json: "json-pointer format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 372 - format.json: "json-pointer format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 373 - format.json: "relative-json-pointer format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 374 - format.json: "relative-json-pointer format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 375 - format.json: "relative-json-pointer format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 376 - format.json: "relative-json-pointer format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 377 - format.json: "relative-json-pointer format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 378 - format.json: "relative-json-pointer format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 379 - format.json: "iri format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 380 - format.json: "iri format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 381 - format.json: "iri format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 382 - format.json: "iri format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 383 - format.json: "iri format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 384 - format.json: "iri format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 385 - format.json: "iri-reference format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 386 - format.json: "iri-reference format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 387 - format.json: "iri-reference format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 388 - format.json: "iri-reference format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 389 - format.json: "iri-reference format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 390 - format.json: "iri-reference format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 391 - format.json: "uri format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 392 - format.json: "uri format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 393 - format.json: "uri format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 394 - format.json: "uri format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 395 - format.json: "uri format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 396 - format.json: "uri format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 397 - format.json: "uri-reference format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 398 - format.json: "uri-reference format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 399 - format.json: "uri-reference format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 400 - format.json: "uri-reference format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 401 - format.json: "uri-reference format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 402 - format.json: "uri-reference format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 403 - format.json: "uri-template format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 404 - format.json: "uri-template format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 405 - format.json: "uri-template format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 406 - format.json: "uri-template format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 407 - format.json: "uri-template format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 408 - format.json: "uri-template format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 409 - format.json: "uuid format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 410 - format.json: "uuid format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 411 - format.json: "uuid format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 412 - format.json: "uuid format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 413 - format.json: "uuid format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 414 - format.json: "uuid format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 415 - format.json: "duration format" - "all string formats ignore integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 416 - format.json: "duration format" - "all string formats ignore floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 417 - format.json: "duration format" - "all string formats ignore objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 418 - format.json: "duration format" - "all string formats ignore arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 419 - format.json: "duration format" - "all string formats ignore booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 420 - format.json: "duration format" - "all string formats ignore nulls" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 421 - if-then-else.json: "ignore if without then or else" - "valid when valid against lone if" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 422 - if-then-else.json: "ignore if without then or else" - "valid when invalid against lone if" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 423 - if-then-else.json: "ignore then without if" - "valid when valid against lone then" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 424 - if-then-else.json: "ignore then without if" - "valid when invalid against lone then" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 425 - if-then-else.json: "ignore else without if" - "valid when valid against lone else" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 426 - if-then-else.json: "ignore else without if" - "valid when invalid against lone else" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 427 - if-then-else.json: "if and then without else" - "valid through then" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 428 - if-then-else.json: "if and then without else" - "invalid through then" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than -10", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/minimum" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than -10", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/minimum" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 429 - if-then-else.json: "if and then without else" - "valid when if test fails" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 430 - if-then-else.json: "if and else without then" - "valid when if test passes" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 431 - if-then-else.json: "if and else without then" - "valid through else" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 432 - if-then-else.json: "if and else without then" - "invalid through else" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 433 - if-then-else.json: "validate against correct branch, then vs else" - "valid through then" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 434 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through then" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than -10", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/minimum" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than -10", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/minimum" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 435 - if-then-else.json: "validate against correct branch, then vs else" - "valid through else" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 436 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through else" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/multipleOf" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 437 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through then" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 438 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through else" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 439 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (valid)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 440 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (invalid)" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/const" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/const" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 441 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (invalid)" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/const" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/const" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 442 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (valid)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 443 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "yes redirects to then and passes" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 444 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "other redirects to else and passes" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 445 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "no redirects to then and fails" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/const" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then/const" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/then" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 446 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "invalid redirects to else and fails" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/const" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/const" 97s # }, 97s # { 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s 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" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s 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" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/int/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/int/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/additionalProperties" 97s # }, 97s # { 97s # "error": "subschemas 0, 1 are not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/int/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/properties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 449 - items.json: "a schema given for items" - "valid items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 450 - items.json: "a schema given for items" - "wrong type of items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 451 - items.json: "a schema given for items" - "ignores non-arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 452 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 453 - items.json: "an array of schemas for items" - "correct types" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 454 - items.json: "an array of schemas for items" - "wrong types" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/0/type" 97s # }, 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/1/type" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/0/type" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 455 - items.json: "an array of schemas for items" - "incomplete array of items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 456 - items.json: "an array of schemas for items" - "array with additional items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 457 - items.json: "an array of schemas for items" - "empty array" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 458 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 459 - items.json: "items with boolean schema (true)" - "any array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 460 - items.json: "items with boolean schema (true)" - "empty array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 461 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "item not permitted", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items" 97s # }, 97s # { 97s # "error": "item not permitted", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items" 97s # }, 97s # { 97s # "error": "item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "item not permitted", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 462 - items.json: "items with boolean schema (false)" - "empty array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 463 - items.json: "items with boolean schemas" - "array with one item is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 464 - items.json: "items with boolean schemas" - "array with two items is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "item not permitted", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/1" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "item not permitted", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/1" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 465 - items.json: "items with boolean schemas" - "empty array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 466 - items.json: "items and subitems" - "valid items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 467 - items.json: "items and subitems" - "too many items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/additionalItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/additionalItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 468 - items.json: "items and subitems" - "too many sub-items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/0/2", 97s # "keywordLocation": "/items/0/$ref/additionalItems" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/0/$ref/additionalItems" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/0/2", 97s # "keywordLocation": "/items/0/$ref/additionalItems" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/0/$ref/additionalItems" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 469 - items.json: "items and subitems" - "wrong item" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/item/type", 97s # "error": "got object, not array", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/0/$ref/type" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/item/type", 97s # "error": "got object, not array", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/0/$ref/type" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 470 - items.json: "items and subitems" - "wrong sub-item" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "/0/0", 97s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/item/items", 97s # "error": "not all items are valid", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/0/$ref/items" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "/0/0", 97s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/item/items", 97s # "error": "not all items are valid", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/0/$ref/items" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 471 - items.json: "items and subitems" - "fewer items is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 472 - items.json: "nested items" - "valid nested array" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 473 - items.json: "nested items" - "nested array with invalid type" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/0/0/0/0", 97s # "keywordLocation": "/items/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0/0/0", 97s # "keywordLocation": "/items/items/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0/0", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/0/0/0/0", 97s # "keywordLocation": "/items/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0/0/0", 97s # "keywordLocation": "/items/items/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0/0", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 474 - items.json: "nested items" - "not deep enough" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "/0/0/0", 97s # "keywordLocation": "/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0/0", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "/0/1/0", 97s # "keywordLocation": "/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0/1", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "/0/2/0", 97s # "keywordLocation": "/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0/2", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/items" 97s # }, 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "/1/0/0", 97s # "keywordLocation": "/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/1/0", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "/1/1/0", 97s # "keywordLocation": "/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/1/1", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "/1/2/0", 97s # "keywordLocation": "/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/1/2", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "/0/0/0", 97s # "keywordLocation": "/items/items/items/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0/0", 97s # "keywordLocation": "/items/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/items" 97s # }, 97s # { 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 475 - items.json: "single-form items with null instance elements" - "allows null elements" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 476 - items.json: "array-form items with null instance elements" - "allows null elements" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 477 - maxContains.json: "maxContains without contains is ignored" - "one item valid against lone maxContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 478 - maxContains.json: "maxContains without contains is ignored" - "two items still valid against lone maxContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 479 - maxContains.json: "maxContains with contains" - "empty data" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 480 - maxContains.json: "maxContains with contains" - "all elements match, valid maxContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 481 - maxContains.json: "maxContains with contains" - "all elements match, invalid maxContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 482 - maxContains.json: "maxContains with contains" - "some elements match, valid maxContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 483 - maxContains.json: "maxContains with contains" - "some elements match, invalid maxContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 484 - maxContains.json: "maxContains with contains, value with a decimal" - "one element matches, valid maxContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 485 - maxContains.json: "maxContains with contains, value with a decimal" - "too many elements match, invalid maxContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 486 - maxContains.json: "minContains < maxContains" - "actual < minContains < maxContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 487 - maxContains.json: "minContains < maxContains" - "minContains < actual < maxContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 488 - maxContains.json: "minContains < maxContains" - "minContains < maxContains < actual" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 3 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 3 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 489 - maxItems.json: "maxItems validation" - "shorter is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 490 - maxItems.json: "maxItems validation" - "exact length is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 491 - maxItems.json: "maxItems validation" - "too long is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array has more than 2 items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array has more than 2 items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 492 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 493 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 494 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array has more than 2 items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array has more than 2 items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 495 - maxLength.json: "maxLength validation" - "shorter is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 496 - maxLength.json: "maxLength validation" - "exact length is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 497 - maxLength.json: "maxLength validation" - "too long is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "length is greater than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "length is greater than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 498 - maxLength.json: "maxLength validation" - "ignores non-strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 499 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 500 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 501 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "length is greater than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "length is greater than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 502 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 503 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 504 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object has more than 2 properties", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object has more than 2 properties", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 505 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 506 - maxProperties.json: "maxProperties validation" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 507 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 508 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 509 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object has more than 2 properties", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object has more than 2 properties", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 510 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 511 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object has more than 0 property", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object has more than 0 property", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maxProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 512 - maximum.json: "maximum validation" - "below the maximum is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 513 - maximum.json: "maximum validation" - "boundary point is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 514 - maximum.json: "maximum validation" - "above the maximum is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 3", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 515 - maximum.json: "maximum validation" - "ignores non-numbers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 516 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 517 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 518 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 519 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 300", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 300", 97s # "instanceLocation": "", 97s # "keywordLocation": "/maximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 520 - minContains.json: "minContains without contains is ignored" - "one item valid against lone minContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 521 - minContains.json: "minContains without contains is ignored" - "zero items still valid against lone minContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 522 - minContains.json: "minContains=1 with contains" - "empty data" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 523 - minContains.json: "minContains=1 with contains" - "no elements match" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/contains/const" 97s # }, 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 524 - minContains.json: "minContains=1 with contains" - "single element matches, valid minContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 525 - minContains.json: "minContains=1 with contains" - "some elements match, valid minContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 526 - minContains.json: "minContains=1 with contains" - "all elements match, valid minContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 527 - minContains.json: "minContains=2 with contains" - "empty data" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 528 - minContains.json: "minContains=2 with contains" - "all elements match, invalid minContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 529 - minContains.json: "minContains=2 with contains" - "some elements match, invalid minContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 530 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (exactly as needed)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 531 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (more than needed)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 532 - minContains.json: "minContains=2 with contains" - "some elements match, valid minContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 533 - minContains.json: "minContains=2 with contains with a decimal value" - "one element matches, invalid minContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 534 - minContains.json: "minContains=2 with contains with a decimal value" - "both elements match, valid minContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 535 - minContains.json: "maxContains = minContains" - "empty data" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 536 - minContains.json: "maxContains = minContains" - "all elements match, invalid minContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 537 - minContains.json: "maxContains = minContains" - "all elements match, invalid maxContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 2 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 538 - minContains.json: "maxContains = minContains" - "all elements match, valid maxContains and minContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 539 - minContains.json: "maxContains < minContains" - "empty data" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is not valid against any item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 540 - minContains.json: "maxContains < minContains" - "invalid minContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 3 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains fewer than 3 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 541 - minContains.json: "maxContains < minContains" - "invalid maxContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 542 - minContains.json: "maxContains < minContains" - "invalid maxContains and minContains" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # }, 97s # { 97s # "error": "array contains fewer than 3 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # }, 97s # { 97s # "error": "array contains fewer than 3 matching items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 543 - minContains.json: "minContains = 0 with no maxContains" - "empty data" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 544 - minContains.json: "minContains = 0 with no maxContains" - "minContains = 0 makes contains always pass" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 545 - minContains.json: "minContains = 0 with maxContains" - "empty data" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 546 - minContains.json: "minContains = 0 with maxContains" - "not more than maxContains" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 547 - minContains.json: "minContains = 0 with maxContains" - "too many" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array contains more than 1 matching item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/contains" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 548 - minItems.json: "minItems validation" - "longer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 549 - minItems.json: "minItems validation" - "exact length is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 550 - minItems.json: "minItems validation" - "too short is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array has fewer than 1 item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array has fewer than 1 item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 551 - minItems.json: "minItems validation" - "ignores non-arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 552 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 553 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array has fewer than 1 item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array has fewer than 1 item", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 554 - minLength.json: "minLength validation" - "longer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 555 - minLength.json: "minLength validation" - "exact length is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 556 - minLength.json: "minLength validation" - "too short is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "length is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "length is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 557 - minLength.json: "minLength validation" - "ignores non-strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 558 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "length is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "length is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 559 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 560 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "length is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "length is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 561 - minProperties.json: "minProperties validation" - "longer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 562 - minProperties.json: "minProperties validation" - "exact length is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 563 - minProperties.json: "minProperties validation" - "too short is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object has fewer than 1 property", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object has fewer than 1 property", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 564 - minProperties.json: "minProperties validation" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 565 - minProperties.json: "minProperties validation" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 566 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 567 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 568 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object has fewer than 1 property", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object has fewer than 1 property", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 569 - minimum.json: "minimum validation" - "above the minimum is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 570 - minimum.json: "minimum validation" - "boundary point is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 571 - minimum.json: "minimum validation" - "below the minimum is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than 1.1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than 1.1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 572 - minimum.json: "minimum validation" - "ignores non-numbers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 573 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 574 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 575 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 576 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 577 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than -2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than -2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 578 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than -2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than -2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 579 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 580 - multipleOf.json: "by int" - "int by int" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 581 - multipleOf.json: "by int" - "int by int fail" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/multipleOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/multipleOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 582 - multipleOf.json: "by int" - "ignores non-numbers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 583 - multipleOf.json: "by number" - "zero is multiple of anything" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 584 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 585 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 1.5", 97s # "instanceLocation": "", 97s # "keywordLocation": "/multipleOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 1.5", 97s # "instanceLocation": "", 97s # "keywordLocation": "/multipleOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 586 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 587 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 0.0001", 97s # "instanceLocation": "", 97s # "keywordLocation": "/multipleOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 0.0001", 97s # "instanceLocation": "", 97s # "keywordLocation": "/multipleOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 588 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 0.123456789", 97s # "instanceLocation": "", 97s # "keywordLocation": "/multipleOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is not a multiple of 0.123456789", 97s # "instanceLocation": "", 97s # "keywordLocation": "/multipleOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 589 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 590 - not.json: "not" - "allowed" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 591 - not.json: "not" - "disallowed" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 592 - not.json: "not multiple types" - "valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 593 - not.json: "not multiple types" - "mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 594 - not.json: "not multiple types" - "other mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 595 - not.json: "not more complex schema" - "match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 596 - not.json: "not more complex schema" - "other match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 597 - not.json: "not more complex schema" - "mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 598 - not.json: "forbidden property" - "property present" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/not" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/not" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 599 - not.json: "forbidden property" - "property absent" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 600 - not.json: "forbid everything with empty schema" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 601 - not.json: "forbid everything with empty schema" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 602 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 603 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 604 - not.json: "forbid everything with empty schema" - "null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 605 - not.json: "forbid everything with empty schema" - "object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 606 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 607 - not.json: "forbid everything with empty schema" - "array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 608 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 609 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 610 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 611 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 612 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 613 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 614 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 615 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 616 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 617 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is true", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 618 - not.json: "allow everything with boolean schema false" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 619 - not.json: "allow everything with boolean schema false" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 620 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 621 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 622 - not.json: "allow everything with boolean schema false" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 623 - not.json: "allow everything with boolean schema false" - "object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 624 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 625 - not.json: "allow everything with boolean schema false" - "array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 626 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 627 - not.json: "double negation" - "any value is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 628 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 629 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/not" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 630 - oneOf.json: "oneOf" - "first oneOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 631 - oneOf.json: "oneOf" - "second oneOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 632 - oneOf.json: "oneOf" - "both oneOf valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 633 - oneOf.json: "oneOf" - "neither oneOf valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/type" 97s # }, 97s # { 97s # "error": "value is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/minimum" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/type" 97s # }, 97s # { 97s # "error": "value is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/minimum" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 634 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # }, 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 635 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 636 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 637 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1, 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 638 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 639 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 640 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0" 97s # }, 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1" 97s # }, 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/2" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0" 97s # }, 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1" 97s # }, 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/2" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 641 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 642 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 643 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 644 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/oneOf/0/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/properties" 97s # }, 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/oneOf/1/properties/foo/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/properties" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/oneOf/0/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/properties" 97s # }, 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/oneOf/1/properties/foo/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/properties" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 645 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 646 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 647 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/required" 97s # }, 97s # { 97s # "error": "object is missing properties: foo, baz", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/required" 97s # }, 97s # { 97s # "error": "object is missing properties: foo, baz", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 648 - oneOf.json: "oneOf with required" - "first valid - valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 649 - oneOf.json: "oneOf with required" - "second valid - valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 650 - oneOf.json: "oneOf with required" - "both valid - invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 651 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 652 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 653 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 654 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/required" 97s # }, 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: bar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/required" 97s # }, 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 655 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 656 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/oneOf/0/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/oneOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/oneOf/0/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/oneOf" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 657 - pattern.json: "pattern validation" - "a matching pattern is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 658 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 659 - pattern.json: "pattern validation" - "ignores booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 660 - pattern.json: "pattern validation" - "ignores integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 661 - pattern.json: "pattern validation" - "ignores floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 662 - pattern.json: "pattern validation" - "ignores objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 663 - pattern.json: "pattern validation" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 664 - pattern.json: "pattern validation" - "ignores null" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 665 - pattern.json: "pattern is not anchored" - "matches a substring" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 666 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 667 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 668 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/patternProperties/f.*o/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/patternProperties/f.*o/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 669 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/patternProperties/f.*o/type" 97s # }, 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foooooo", 97s # "keywordLocation": "/patternProperties/f.*o/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/patternProperties/f.*o/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 670 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 671 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 672 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 673 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 674 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 675 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 676 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/a", 97s # "keywordLocation": "/patternProperties/a*/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/a", 97s # "keywordLocation": "/patternProperties/a*/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 677 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 20", 97s # "instanceLocation": "/aaaa", 97s # "keywordLocation": "/patternProperties/aaa*/maximum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than 20", 97s # "instanceLocation": "/aaaa", 97s # "keywordLocation": "/patternProperties/aaa*/maximum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 678 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/aaa", 97s # "keywordLocation": "/patternProperties/a*/type" 97s # }, 97s # { 97s # "error": "value is greater than 20", 97s # "instanceLocation": "/aaaa", 97s # "keywordLocation": "/patternProperties/aaa*/maximum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/aaa", 97s # "keywordLocation": "/patternProperties/a*/type" 97s # }, 97s # { 97s # "error": "value is greater than 20", 97s # "instanceLocation": "/aaaa", 97s # "keywordLocation": "/patternProperties/aaa*/maximum" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 679 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 680 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not boolean", 97s # "instanceLocation": "/a31b", 97s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not boolean", 97s # "instanceLocation": "/a31b", 97s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 681 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 682 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/a_X_3", 97s # "keywordLocation": "/patternProperties/X_/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/a_X_3", 97s # "keywordLocation": "/patternProperties/X_/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 683 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 684 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/patternProperties/b.*" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/patternProperties/b.*" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 685 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/patternProperties/b.*" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/patternProperties/b.*" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 686 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/foobar", 97s # "keywordLocation": "/patternProperties/b.*" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/foobar", 97s # "keywordLocation": "/patternProperties/b.*" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 687 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 688 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 689 - properties.json: "object properties validation" - "both properties present and valid is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 690 - properties.json: "object properties validation" - "one property invalid is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 691 - properties.json: "object properties validation" - "both properties invalid is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/type" 97s # }, 97s # { 97s # "error": "got array, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 692 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 693 - properties.json: "object properties validation" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 694 - properties.json: "object properties validation" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 695 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 696 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array has more than 3 items", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/maxItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array has more than 3 items", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/maxItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 697 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array has fewer than 2 items", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/patternProperties/f.o/minItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array has fewer than 2 items", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/patternProperties/f.o/minItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 698 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 699 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array has fewer than 2 items", 97s # "instanceLocation": "/fxo", 97s # "keywordLocation": "/patternProperties/f.o/minItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array has fewer than 2 items", 97s # "instanceLocation": "/fxo", 97s # "keywordLocation": "/patternProperties/f.o/minItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 700 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 701 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 702 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/quux", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/quux", 97s # "keywordLocation": "/additionalProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 703 - properties.json: "properties with boolean schema" - "no property present is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 704 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 705 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 706 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 707 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 708 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\tbar", 97s # "keywordLocation": "/properties/foo\tbar/type" 97s # }, 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\nbar", 97s # "keywordLocation": "/properties/foo\nbar/type" 97s # }, 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\fbar", 97s # "keywordLocation": "/properties/foo\fbar/type" 97s # }, 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\rbar", 97s # "keywordLocation": "/properties/foo\rbar/type" 97s # }, 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\"bar", 97s # "keywordLocation": "/properties/foo\"bar/type" 97s # }, 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\\bar", 97s # "keywordLocation": "/properties/foo\\bar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\tbar", 97s # "keywordLocation": "/properties/foo\tbar/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 709 - properties.json: "properties with null valued instance properties" - "allows null values" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 710 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 711 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 712 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 713 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/__proto__", 97s # "keywordLocation": "/properties/__proto__/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/__proto__", 97s # "keywordLocation": "/properties/__proto__/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 714 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/toString/length", 97s # "keywordLocation": "/properties/toString/properties/length/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/toString", 97s # "keywordLocation": "/properties/toString/properties" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/toString/length", 97s # "keywordLocation": "/properties/toString/properties/length/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/toString", 97s # "keywordLocation": "/properties/toString/properties" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 715 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not number", 97s # "instanceLocation": "/constructor", 97s # "keywordLocation": "/properties/constructor/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not number", 97s # "instanceLocation": "/constructor", 97s # "keywordLocation": "/properties/constructor/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 716 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 717 - propertyNames.json: "propertyNames validation" - "all property names valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 718 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "length is greater than 3", 97s # "instanceLocation": "/foobar", 97s # "keywordLocation": "/propertyNames/maxLength" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "length is greater than 3", 97s # "instanceLocation": "/foobar", 97s # "keywordLocation": "/propertyNames/maxLength" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 719 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 720 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 721 - propertyNames.json: "propertyNames validation" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 722 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 723 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 724 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "/aaA", 97s # "keywordLocation": "/propertyNames/pattern" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "/aaA", 97s # "keywordLocation": "/propertyNames/pattern" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 725 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 726 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 727 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 728 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/propertyNames" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "subschema is false", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/propertyNames" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 729 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 730 - propertyNames.json: "propertyNames with const" - "object with property foo is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 731 - propertyNames.json: "propertyNames with const" - "object with any other property is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/propertyNames/const" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/propertyNames/const" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 732 - propertyNames.json: "propertyNames with const" - "empty object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 733 - propertyNames.json: "propertyNames with enum" - "object with property foo is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 734 - propertyNames.json: "propertyNames with enum" - "object with property foo and bar is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 735 - propertyNames.json: "propertyNames with enum" - "object with any other property is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/propertyNames/enum" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/propertyNames/enum" 97s # }, 97s # { 97s # "error": "not all property names are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/propertyNames" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 736 - propertyNames.json: "propertyNames with enum" - "empty object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 737 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 738 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 739 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 740 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/additionalProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/additionalProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 741 - recursiveRef.json: "$recursiveRef without using nesting" - "integer matches at the outer level" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 742 - recursiveRef.json: "$recursiveRef without using nesting" - "single level match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 743 - recursiveRef.json: "$recursiveRef without using nesting" - "integer does not match as a property value" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 97s # "error": "got object, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 97s # "error": "got integer, not object", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 97s # "error": "got object, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 97s # "error": "got integer, not object", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 744 - recursiveRef.json: "$recursiveRef without using nesting" - "two levels, properties match with inner definition" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 745 - recursiveRef.json: "$recursiveRef without using nesting" - "two levels, no match" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 97s # "error": "got object, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 97s # "error": "got integer, not object", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 97s # "error": "got object, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 97s # "error": "got integer, not object", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 746 - recursiveRef.json: "$recursiveRef with nesting" - "integer matches at the outer level" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 747 - recursiveRef.json: "$recursiveRef with nesting" - "single level match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 748 - recursiveRef.json: "$recursiveRef with nesting" - "integer now matches as a property value" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 749 - recursiveRef.json: "$recursiveRef with nesting" - "two levels, properties match with inner definition" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 750 - recursiveRef.json: "$recursiveRef with nesting" - "two levels, properties match with $recursiveRef" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 751 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "integer matches at the outer level" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 752 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "single level match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 753 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "integer does not match as a property value" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 97s # "error": "got object, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 97s # "error": "got integer, not object", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 97s # "error": "got object, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 97s # "error": "got integer, not object", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 754 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "two levels, properties match with inner definition" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 755 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "two levels, integer does not match as a property value" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 97s # "error": "got object, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 97s # "error": "got integer, not object", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 97s # "error": "got object, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 97s # "error": "got integer, not object", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 756 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "integer matches at the outer level" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 757 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "single level match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 758 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "integer does not match as a property value" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 97s # "error": "got object, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 97s # "error": "got integer, not object", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 97s # "error": "got object, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 97s # "error": "got integer, not object", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 759 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "two levels, properties match with inner definition" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 760 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "two levels, integer does not match as a property value" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 97s # "error": "got object, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 97s # "error": "got integer, not object", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 97s # "error": "got object, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 97s # "error": "got integer, not object", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 761 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the initial target schema resource" - "leaf node does not match; no recursion" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 97s # "error": "got object, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 97s # "error": "got boolean, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 97s # "error": "got boolean, not object", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 97s # "error": "got object, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 97s # "error": "got boolean, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 97s # "error": "got boolean, not object", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 762 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the initial target schema resource" - "leaf node matches: recursion uses the inner schema" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 763 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the initial target schema resource" - "leaf node does not match: recursion uses the inner schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 97s # "error": "got object, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 97s # "error": "got object, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 97s # "error": "got boolean, not integer", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 97s # "error": "got boolean, not object", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 97s # "error": "got object, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 97s # "error": "got object, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 97s # "error": "got boolean, not integer", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 97s # "error": "got boolean, not object", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 764 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the outer schema resource" - "leaf node does not match; no recursion" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 97s # "error": "got object, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 97s # "error": "got boolean, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 97s # "error": "got boolean, not object", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 97s # "error": "got object, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 97s # "error": "got boolean, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 97s # "error": "got boolean, not object", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 765 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the outer schema resource" - "leaf node matches: recursion only uses inner schema" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 766 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the outer schema resource" - "leaf node does not match: recursion only uses inner schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 97s # "error": "got object, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 97s # "error": "got object, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 97s # "error": "got boolean, not integer", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 97s # "error": "got boolean, not object", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 97s # "error": "got object, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 97s # "error": "got object, not integer", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 97s # "error": "got boolean, not integer", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 97s # "error": "got boolean, not object", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 767 - recursiveRef.json: "multiple dynamic paths to the $recursiveRef keyword" - "recurse to anyLeafNode - floats are allowed" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 768 - recursiveRef.json: "multiple dynamic paths to the $recursiveRef keyword" - "recurse to integerNode - floats are not allowed" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_integerNode.json#/type", 97s # "error": "got number, not one of object, integer", 97s # "instanceLocation": "/november", 97s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_inner.json#/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/$ref/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_main.json#/else", 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_integerNode.json#/type", 97s # "error": "got number, not one of object, integer", 97s # "instanceLocation": "/november", 97s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_inner.json#/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/$ref/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_main.json#/else", 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 769 - recursiveRef.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "numeric node" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 770 - recursiveRef.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "integer node" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/integerNode.json#/type", 97s # "error": "got number, not one of object, integer", 97s # "instanceLocation": "/november", 97s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/inner.json#/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/$ref/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/main.json#/else", 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/integerNode.json#/type", 97s # "error": "got number, not one of object, integer", 97s # "instanceLocation": "/november", 97s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/inner.json#/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else/$ref/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/main.json#/else", 97s # "error": "subschema is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/else" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 771 - ref.json: "root pointer ref" - "match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 772 - ref.json: "root pointer ref" - "recursive match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 773 - ref.json: "root pointer ref" - "mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 774 - ref.json: "root pointer ref" - "recursive mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/additionalProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/additionalProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/additionalProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 775 - ref.json: "relative pointer ref to object" - "match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 776 - ref.json: "relative pointer ref to object" - "mismatch" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/properties/foo/type", 97s # "error": "got boolean, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/properties/foo/type", 97s # "error": "got boolean, not integer", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 777 - ref.json: "relative pointer ref to array" - "match array" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 778 - ref.json: "relative pointer ref to array" - "mismatch array" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/items/0/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/1/$ref/type" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/items/0/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/items/1/$ref/type" 97s # }, 97s # { 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 779 - ref.json: "escaped pointer ref" - "slash invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/slash", 97s # "keywordLocation": "/properties/slash/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/slash", 97s # "keywordLocation": "/properties/slash/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 780 - ref.json: "escaped pointer ref" - "tilde invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/tilde", 97s # "keywordLocation": "/properties/tilde/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/tilde", 97s # "keywordLocation": "/properties/tilde/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 781 - ref.json: "escaped pointer ref" - "percent invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/percent", 97s # "keywordLocation": "/properties/percent/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/percent", 97s # "keywordLocation": "/properties/percent/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 782 - ref.json: "escaped pointer ref" - "slash valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 783 - ref.json: "escaped pointer ref" - "tilde valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 784 - ref.json: "escaped pointer ref" - "percent valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 785 - ref.json: "nested refs" - "nested ref valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 786 - ref.json: "nested refs" - "nested ref invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/a/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/a/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 787 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 788 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "array has more than 2 items", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/maxItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "array has more than 2 items", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/maxItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 789 - ref.json: "ref applies alongside sibling keywords" - "ref invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/reffed/type", 97s # "error": "got string, not array", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/reffed/type", 97s # "error": "got string, not array", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 790 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 791 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/nonNegativeInteger/minimum", 97s # "error": "value is less than 0", 97s # "instanceLocation": "/minLength", 97s # "keywordLocation": "/$ref/allOf/2/$ref/properties/minLength/$ref/$ref/minimum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/allOf/2/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 97s # "error": "subschema 2 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/nonNegativeInteger/minimum", 97s # "error": "value is less than 0", 97s # "instanceLocation": "/minLength", 97s # "keywordLocation": "/$ref/allOf/2/$ref/properties/minLength/$ref/$ref/minimum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/allOf/2/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 97s # "error": "subschema 2 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 792 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 793 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/$ref", 97s # "keywordLocation": "/properties/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/$ref", 97s # "keywordLocation": "/properties/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 794 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 795 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/is-string/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/$ref", 97s # "keywordLocation": "/properties/$ref/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/is-string/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/$ref", 97s # "keywordLocation": "/properties/$ref/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 796 - ref.json: "$ref to boolean schema true" - "any value is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 797 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/bool", 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/bool", 97s # "error": "subschema is false", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 798 - ref.json: "Recursive references between schemas" - "valid tree" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 799 - ref.json: "Recursive references between schemas" - "invalid tree" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties/value/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/nodes/0/subtree/nodes/0", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/nodes/0/subtree/nodes", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/nodes/0/subtree", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/nodes/0", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/nodes", 97s # "keywordLocation": "/properties/nodes/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties/value/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/nodes/0/subtree/nodes/0", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/nodes/0/subtree/nodes", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/nodes/0/subtree", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/nodes/0", 97s # "keywordLocation": "/properties/nodes/items/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/nodes", 97s # "keywordLocation": "/properties/nodes/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 800 - ref.json: "refs with quote" - "object with numbers is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 801 - ref.json: "refs with quote" - "object with strings is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\"bar", 97s # "keywordLocation": "/properties/foo\"bar/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "/foo\"bar", 97s # "keywordLocation": "/properties/foo\"bar/$ref/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 802 - ref.json: "ref creates new scope when adjacent to keywords" - "referenced subschema doesn't see annotations from properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/prop1", 97s # "keywordLocation": "/$ref/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/prop1", 97s # "keywordLocation": "/$ref/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s 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" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s 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" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/enum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 805 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 806 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 807 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/$ref/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/$ref/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 808 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 809 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo/bar", 97s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 810 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/$ref/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/$ref/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 811 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 812 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 813 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 814 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 815 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id1/int.json#/maximum", 97s # "error": "value is greater than 10", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/maximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id1/int.json#/maximum", 97s # "error": "value is greater than 10", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/maximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 816 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 817 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id2/base.json#/$defs/bigint/maximum", 97s # "error": "value is greater than 10", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/maximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id2/base.json#/$defs/bigint/maximum", 97s # "error": "value is greater than 10", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/maximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 818 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 819 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 97s # "error": "value is less than 30", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/minimum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 97s # "error": "value is less than 30", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/minimum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 820 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 821 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 822 - ref.json: "URN base URI with NSS" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 823 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 824 - ref.json: "URN base URI with r-component" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 825 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 826 - ref.json: "URN base URI with q-component" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 827 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 828 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 829 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 830 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 831 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 832 - ref.json: "URN ref with nested pointer ref" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 833 - ref.json: "URN ref with nested pointer ref" - "a non-string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 834 - ref.json: "ref to if" - "a non-integer is invalid due to the $ref" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 835 - ref.json: "ref to if" - "an integer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 836 - ref.json: "ref to then" - "a non-integer is invalid due to the $ref" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 837 - ref.json: "ref to then" - "an integer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 838 - ref.json: "ref to else" - "a non-integer is invalid due to the $ref" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 839 - ref.json: "ref to else" - "an integer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 840 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 841 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 842 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 843 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 844 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 845 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 846 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 847 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs//$defs//type", 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/$ref/type" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs//$defs//type", 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/$ref/type" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 848 - ref.json: "$ref with $recursiveAnchor" - "extra items allowed for inner arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 849 - ref.json: "$ref with $recursiveAnchor" - "extra items disallowed for root" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 850 - refRemote.json: "remote ref" - "remote ref valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 851 - refRemote.json: "remote ref" - "remote ref invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 852 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 853 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 854 - refRemote.json: "anchor within remote ref" - "remote anchor valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 855 - refRemote.json: "anchor within remote ref" - "remote anchor invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 856 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 857 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 858 - refRemote.json: "base URI change" - "base URI change ref valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 859 - refRemote.json: "base URI change" - "base URI change ref invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/folderInteger.json#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/0/0", 97s # "keywordLocation": "/items/items/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/folderInteger.json#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/0/0", 97s # "keywordLocation": "/items/items/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/items/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 860 - refRemote.json: "base URI change - change folder" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 861 - refRemote.json: "base URI change - change folder" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/folderInteger.json#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/list/0", 97s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/list", 97s # "keywordLocation": "/properties/list/$ref/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs1.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/folderInteger.json#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/list/0", 97s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/#/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/list", 97s # "keywordLocation": "/properties/list/$ref/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs1.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 862 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 863 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/folderInteger.json#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/list/0", 97s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/#/$defs/bar/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/list", 97s # "keywordLocation": "/properties/list/$ref/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs2.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/folderInteger.json#/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "/list/0", 97s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/#/$defs/bar/items", 97s # "error": "subschema is not valid against all items", 97s # "instanceLocation": "/list", 97s # "keywordLocation": "/properties/list/$ref/items" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs2.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 864 - refRemote.json: "root ref in remote ref" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 865 - refRemote.json: "root ref in remote ref" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 866 - refRemote.json: "root ref in remote ref" - "object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf/0/type", 97s # "error": "got object, not null", 97s # "instanceLocation": "/name", 97s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "/name", 97s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/name", 97s # "keywordLocation": "/properties/name/$ref/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/object#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf/0/type", 97s # "error": "got object, not null", 97s # "instanceLocation": "/name", 97s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "/name", 97s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "/name", 97s # "keywordLocation": "/properties/name/$ref/anyOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/object#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 867 - refRemote.json: "remote ref with ref to defs" - "invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/$ref/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/$ref/$ref/properties/bar/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 868 - refRemote.json: "remote ref with ref to defs" - "valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 869 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 870 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 871 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/name/foo", 97s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/foo-ref-string.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/name", 97s # "keywordLocation": "/properties/name/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/some-id#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/name/foo", 97s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/foo-ref-string.json#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/name", 97s # "keywordLocation": "/properties/name/$ref/properties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/some-id#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 872 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 873 - refRemote.json: "remote HTTP ref with different $id" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 874 - refRemote.json: "remote HTTP ref with different $id" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 875 - refRemote.json: "remote HTTP ref with different URN $id" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 876 - refRemote.json: "remote HTTP ref with different URN $id" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 877 - refRemote.json: "remote HTTP ref with nested absolute ref" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 878 - refRemote.json: "remote HTTP ref with nested absolute ref" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 879 - refRemote.json: "$ref to $ref finds detached $anchor" - "number is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 880 - refRemote.json: "$ref to $ref finds detached $anchor" - "non-number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/detached-ref.json#/$defs/detached/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/detached-ref.json#/$defs/detached/type", 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/$ref/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 881 - required.json: "required validation" - "present required property is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 882 - required.json: "required validation" - "non-present required property is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing property: foo", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 883 - required.json: "required validation" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 884 - required.json: "required validation" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 885 - required.json: "required validation" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 886 - required.json: "required default validation" - "not required by default" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 887 - required.json: "required with empty array" - "property not required" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 888 - required.json: "required with escaped characters" - "object with all properties present is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 889 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 890 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 891 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 892 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: __proto__, toString, constructor", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: __proto__, toString, constructor", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 893 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: toString, constructor", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: toString, constructor", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 894 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: __proto__, constructor", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: __proto__, constructor", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 895 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: __proto__, toString", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "object is missing properties: __proto__, toString", 97s # "instanceLocation": "", 97s # "keywordLocation": "/required" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 896 - required.json: "required properties whose names are Javascript object property names" - "all present" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 897 - type.json: "integer type matches integers" - "an integer is an integer" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 898 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 899 - type.json: "integer type matches integers" - "a float is not an integer" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 900 - type.json: "integer type matches integers" - "a string is not an integer" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 901 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 902 - type.json: "integer type matches integers" - "an object is not an integer" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 903 - type.json: "integer type matches integers" - "an array is not an integer" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 904 - type.json: "integer type matches integers" - "a boolean is not an integer" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 905 - type.json: "integer type matches integers" - "null is not an integer" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not integer", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 906 - type.json: "number type matches numbers" - "an integer is a number" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 907 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 908 - type.json: "number type matches numbers" - "a float is a number" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 909 - type.json: "number type matches numbers" - "a string is not a number" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 910 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 911 - type.json: "number type matches numbers" - "an object is not a number" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 912 - type.json: "number type matches numbers" - "an array is not a number" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 913 - type.json: "number type matches numbers" - "a boolean is not a number" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 914 - type.json: "number type matches numbers" - "null is not a number" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 915 - type.json: "string type matches strings" - "1 is not a string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 916 - type.json: "string type matches strings" - "a float is not a string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 917 - type.json: "string type matches strings" - "a string is a string" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 918 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 919 - type.json: "string type matches strings" - "an empty string is still a string" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 920 - type.json: "string type matches strings" - "an object is not a string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 921 - type.json: "string type matches strings" - "an array is not a string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 922 - type.json: "string type matches strings" - "a boolean is not a string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 923 - type.json: "string type matches strings" - "null is not a string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 924 - type.json: "object type matches objects" - "an integer is not an object" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 925 - type.json: "object type matches objects" - "a float is not an object" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 926 - type.json: "object type matches objects" - "a string is not an object" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 927 - type.json: "object type matches objects" - "an object is an object" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 928 - type.json: "object type matches objects" - "an array is not an object" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 929 - type.json: "object type matches objects" - "a boolean is not an object" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 930 - type.json: "object type matches objects" - "null is not an object" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 931 - type.json: "array type matches arrays" - "an integer is not an array" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 932 - type.json: "array type matches arrays" - "a float is not an array" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 933 - type.json: "array type matches arrays" - "a string is not an array" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 934 - type.json: "array type matches arrays" - "an object is not an array" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 935 - type.json: "array type matches arrays" - "an array is an array" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 936 - type.json: "array type matches arrays" - "a boolean is not an array" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 937 - type.json: "array type matches arrays" - "null is not an array" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not array", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 938 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 939 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 940 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 941 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 942 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 943 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 944 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 945 - type.json: "boolean type matches booleans" - "true is a boolean" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 946 - type.json: "boolean type matches booleans" - "false is a boolean" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 947 - type.json: "boolean type matches booleans" - "null is not a boolean" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not boolean", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 948 - type.json: "null type matches only the null object" - "an integer is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 949 - type.json: "null type matches only the null object" - "a float is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 950 - type.json: "null type matches only the null object" - "zero is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 951 - type.json: "null type matches only the null object" - "a string is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 952 - type.json: "null type matches only the null object" - "an empty string is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 953 - type.json: "null type matches only the null object" - "an object is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 954 - type.json: "null type matches only the null object" - "an array is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 955 - type.json: "null type matches only the null object" - "true is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 956 - type.json: "null type matches only the null object" - "false is not null" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 957 - type.json: "null type matches only the null object" - "null is null" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 958 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 959 - type.json: "multiple types can be specified in an array" - "a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 960 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got number, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 961 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got object, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 962 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got array, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 963 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got boolean, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 964 - type.json: "multiple types can be specified in an array" - "null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not one of integer, string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 965 - type.json: "type as array with one item" - "string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 966 - type.json: "type as array with one item" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 967 - type.json: "type: array or object" - "array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 968 - type.json: "type: array or object" - "object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 969 - type.json: "type: array or object" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not one of array, object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not one of array, object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 970 - type.json: "type: array or object" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not one of array, object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not one of array, object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 971 - type.json: "type: array or object" - "null is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not one of array, object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got null, not one of array, object", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 972 - type.json: "type: array, object or null" - "array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 973 - type.json: "type: array, object or null" - "object is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 974 - type.json: "type: array, object or null" - "null is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 975 - type.json: "type: array, object or null" - "number is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not one of array, object, null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not one of array, object, null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 976 - type.json: "type: array, object or null" - "string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not one of array, object, null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not one of array, object, null", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 977 - unevaluatedItems.json: "unevaluatedItems true" - "with no unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 978 - unevaluatedItems.json: "unevaluatedItems true" - "with unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 979 - unevaluatedItems.json: "unevaluatedItems false" - "with no unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 980 - unevaluatedItems.json: "unevaluatedItems false" - "with unevaluated items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 981 - unevaluatedItems.json: "unevaluatedItems as schema" - "with no unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 982 - unevaluatedItems.json: "unevaluatedItems as schema" - "with valid unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 983 - unevaluatedItems.json: "unevaluatedItems as schema" - "with invalid unevaluated items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/unevaluatedItems/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/unevaluatedItems/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 984 - unevaluatedItems.json: "unevaluatedItems with uniform items" - "unevaluatedItems doesn't apply" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 985 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with no unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 986 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with unevaluated items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 987 - unevaluatedItems.json: "unevaluatedItems with items and additionalItems" - "unevaluatedItems doesn't apply" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 988 - unevaluatedItems.json: "unevaluatedItems with ignored additionalItems" - "invalid under unevaluatedItems" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/unevaluatedItems/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/unevaluatedItems/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 989 - unevaluatedItems.json: "unevaluatedItems with ignored additionalItems" - "all valid under unevaluatedItems" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 990 - unevaluatedItems.json: "unevaluatedItems with ignored applicator additionalItems" - "invalid under unevaluatedItems" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/unevaluatedItems/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/unevaluatedItems/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 991 - unevaluatedItems.json: "unevaluatedItems with ignored applicator additionalItems" - "all valid under unevaluatedItems" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 992 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with no unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 993 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with unevaluated items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 994 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with only (valid) additional items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 995 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with no additional items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 996 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with invalid additional item" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not boolean", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/unevaluatedItems/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not boolean", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/unevaluatedItems/type" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 997 - unevaluatedItems.json: "unevaluatedItems with nested items and additionalItems" - "with no additional items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 998 - unevaluatedItems.json: "unevaluatedItems with nested items and additionalItems" - "with additional items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 999 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with no additional items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1000 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with additional items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1001 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has no unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1002 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has unevaluated items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1003 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has no unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1004 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has unevaluated items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1005 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with no unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1006 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with unevaluated items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1007 - unevaluatedItems.json: "unevaluatedItems with not" - "with unevaluated items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1008 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has no unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1009 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has unevaluated items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/3", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1010 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has no unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1011 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has unevaluated items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/4", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/4", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1012 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with no unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1013 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with unevaluated items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1014 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with no unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1015 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with unevaluated items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1016 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with no unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1017 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with unevaluated items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1018 - unevaluatedItems.json: "unevaluatedItems with $recursiveRef" - "with no unevaluated items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1019 - unevaluatedItems.json: "unevaluatedItems with $recursiveRef" - "with unevaluated items" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/1/3", 97s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items", 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/1/3", 97s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "/1", 97s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items", 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/items" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1020 - unevaluatedItems.json: "unevaluatedItems can't see inside cousins" - "always fails" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/allOf/1/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/allOf/1/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1021 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "no extra items" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1022 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "uncle keyword evaluation is not significant" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/foo/1", 97s # "keywordLocation": "/properties/foo/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/unevaluatedItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/foo/1", 97s # "keywordLocation": "/properties/foo/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/unevaluatedItems" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1023 - unevaluatedItems.json: "non-array instances are valid" - "ignores booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1024 - unevaluatedItems.json: "non-array instances are valid" - "ignores integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1025 - unevaluatedItems.json: "non-array instances are valid" - "ignores floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1026 - unevaluatedItems.json: "non-array instances are valid" - "ignores objects" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1027 - unevaluatedItems.json: "non-array instances are valid" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1028 - unevaluatedItems.json: "non-array instances are valid" - "ignores null" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1029 - unevaluatedItems.json: "unevaluatedItems with null instance elements" - "allows null elements" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1030 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "valid in case if is evaluated" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1031 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "invalid in case if is evaluated" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/unevaluatedItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 1032 - unevaluatedProperties.json: "unevaluatedProperties true" - "with no unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1033 - unevaluatedProperties.json: "unevaluatedProperties true" - "with unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1034 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with no unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1035 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with valid unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1036 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with invalid unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "length is less than 3", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/unevaluatedProperties/minLength" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "length is less than 3", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/unevaluatedProperties/minLength" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1037 - unevaluatedProperties.json: "unevaluatedProperties false" - "with no unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1038 - unevaluatedProperties.json: "unevaluatedProperties false" - "with unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1039 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with no unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1040 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1041 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with no unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1042 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1043 - unevaluatedProperties.json: "unevaluatedProperties with adjacent additionalProperties" - "with no additional properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1044 - unevaluatedProperties.json: "unevaluatedProperties with adjacent additionalProperties" - "with additional properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1045 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with no additional properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1046 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with additional properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1047 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with no additional properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1048 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with additional properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1049 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with no additional properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1050 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with additional properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1051 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with no nested unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1052 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with nested unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1053 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has no unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1054 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1055 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has no unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1056 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/quux", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/quux", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1057 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with no unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1058 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/quux", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/quux", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1059 - unevaluatedProperties.json: "unevaluatedProperties with not" - "with unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1060 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has no unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1061 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1062 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has no unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1063 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1064 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has no unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1065 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1066 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has no unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1067 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1068 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has no unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1069 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1070 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has no unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1071 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1072 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with no unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1073 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1074 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with no unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1075 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1076 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with no unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1077 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1078 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with no unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1079 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/baz", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1080 - unevaluatedProperties.json: "unevaluatedProperties with $recursiveRef" - "with no unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1081 - unevaluatedProperties.json: "unevaluatedProperties with $recursiveRef" - "with unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/branches/foo", 97s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/branches", 97s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/branches/foo", 97s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/branches", 97s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1082 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins" - "always fails" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1083 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins (reverse order)" - "always fails" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1084 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with no nested unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1085 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with nested unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1086 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with no nested unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1087 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with nested unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1088 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with no nested unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1089 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with nested unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1090 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with no nested unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1091 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with nested unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1092 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with no nested unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1093 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with nested unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1094 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with no nested unevaluated properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1095 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with nested unevaluated properties" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/1/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 1 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1096 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "no extra properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1097 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "uncle keyword evaluation is not significant" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo/faz", 97s # "keywordLocation": "/properties/foo/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo/faz", 97s # "keywordLocation": "/properties/foo/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/properties/foo/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1098 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "base case: both properties present" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1099 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, bar is missing" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1100 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, foo is missing" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "subschema 0 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1101 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "base case: both properties present" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1102 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, bar is missing" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1103 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, foo is missing" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1104 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Empty is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1105 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Single is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1106 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 1st level is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/y", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/y", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1107 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Nested is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1108 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 2nd level is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/unevaluatedProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/x/y", 97s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/unevaluatedProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/x", 97s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/unevaluatedProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/x/y", 97s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/unevaluatedProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/x", 97s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1109 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Deep nested is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1110 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 3rd level is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/unevaluatedProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/x/x/y", 97s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/unevaluatedProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/x/x", 97s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/x", 97s # "keywordLocation": "/properties/x/$ref/properties" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/unevaluatedProperties", 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/x/x/y", 97s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/unevaluatedProperties", 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "/x/x", 97s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "/x", 97s # "keywordLocation": "/properties/x/$ref/properties" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1111 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "Empty is invalid (no x or y)" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/two/required", 97s # "error": "object is missing property: x", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 97s # }, 97s # { 97s # "error": "object is missing property: y", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/2/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/2/oneOf" 97s # }, 97s # { 97s # "error": "subschema 2 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/two/required", 97s # "error": "object is missing property: x", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 97s # }, 97s # { 97s # "error": "object is missing property: y", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/2/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/2/oneOf" 97s # }, 97s # { 97s # "error": "subschema 2 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1112 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b are invalid (no x or y)" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/two/required", 97s # "error": "object is missing property: x", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 97s # }, 97s # { 97s # "error": "object is missing property: y", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/2/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/2/oneOf" 97s # }, 97s # { 97s # "error": "subschema 2 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/two/required", 97s # "error": "object is missing property: x", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 97s # }, 97s # { 97s # "error": "object is missing property: y", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/2/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/2/oneOf" 97s # }, 97s # { 97s # "error": "subschema 2 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1113 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "x and y are invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/2/oneOf" 97s # }, 97s # { 97s # "error": "subschema 2 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/x", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/y", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/2/oneOf" 97s # }, 97s # { 97s # "error": "subschema 2 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/x", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/y", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1114 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and x are valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1115 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and y are valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1116 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x are valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1117 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and y are valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1118 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x and y are invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/2/oneOf" 97s # }, 97s # { 97s # "error": "subschema 2 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/x", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/y", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf/2/oneOf" 97s # }, 97s # { 97s # "error": "subschema 2 is not valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/allOf" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/x", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/y", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1119 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "Empty is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 97s # "error": "object is missing property: c", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 97s # "error": "object is missing property: d", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 97s # "error": "object is missing property: b", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 97s # "error": "object is missing property: xx", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 97s # "error": "object is missing property: all", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "error": "object is missing property: a", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 97s # "error": "object is missing property: c", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 97s # "error": "object is missing property: d", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 97s # "error": "object is missing property: b", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 97s # "error": "object is missing property: xx", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 97s # "error": "object is missing property: all", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "error": "object is missing property: a", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1120 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1121 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1122 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1123 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "d is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1124 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + b is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1125 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + c is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1126 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + d is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1127 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + c is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "error": "object is missing property: a", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/b", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/c", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "error": "object is missing property: a", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/b", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/c", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1128 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + d is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "error": "object is missing property: a", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/b", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/d", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "error": "object is missing property: a", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/b", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/d", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1129 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c + d is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 97s # "error": "object is missing property: b", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 97s # "error": "object is missing property: xx", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 97s # "error": "object is missing property: all", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "error": "object is missing property: a", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/c", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/d", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 97s # "error": "object is missing property: b", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 97s # "error": "object is missing property: xx", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 97s # "error": "object is missing property: all", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "error": "object is missing property: a", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/c", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/d", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1130 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1131 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foox is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1132 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foo is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1133 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + a is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1134 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + b is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 97s # "error": "multiple subschemas are valid: 1, 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "error": "object is missing property: a", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/b", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/xx", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 97s # "error": "multiple subschemas are valid: 1, 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "error": "object is missing property: a", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/b", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/xx", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1135 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + c is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 97s # "error": "multiple subschemas are valid: 0, 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "error": "object is missing property: a", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/c", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/xx", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 97s # "error": "multiple subschemas are valid: 0, 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "error": "object is missing property: a", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/c", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/xx", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1136 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + d is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 97s # "error": "multiple subschemas are valid: 0, 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "error": "object is missing property: a", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/d", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/xx", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 97s # "error": "multiple subschemas are valid: 0, 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/0/$ref/oneOf" 97s # }, 97s # { 97s # "error": "object is missing property: a", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf/1/required" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/d", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/xx", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1137 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1138 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + foo is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1139 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + a is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "multiple subschemas are valid: 0, 1", 97s # "instanceLocation": "", 97s # "keywordLocation": "/oneOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1140 - unevaluatedProperties.json: "non-object instances are valid" - "ignores booleans" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1141 - unevaluatedProperties.json: "non-object instances are valid" - "ignores integers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1142 - unevaluatedProperties.json: "non-object instances are valid" - "ignores floats" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1143 - unevaluatedProperties.json: "non-object instances are valid" - "ignores arrays" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1144 - unevaluatedProperties.json: "non-object instances are valid" - "ignores strings" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1145 - unevaluatedProperties.json: "non-object instances are valid" - "ignores null" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1146 - unevaluatedProperties.json: "unevaluatedProperties with null valued instance properties" - "allows null valued properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1147 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "allows only number properties" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1148 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "string property is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/a", 97s # "keywordLocation": "/unevaluatedProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "/a", 97s # "keywordLocation": "/unevaluatedProperties/type" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1149 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "valid in case if is evaluated" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1150 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "invalid in case if is evaluated" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1151 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't consider dependentSchemas" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/foo", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1152 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't see bar when foo2 is absent" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/unevaluatedProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/unevaluatedProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1153 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties sees bar when foo2 is present" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 1154 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1155 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1156 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 2 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 2 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1157 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1158 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1159 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1160 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1161 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 2 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 2 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1162 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1163 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1164 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1165 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1166 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1167 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1168 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1169 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 2 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 2 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1170 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1171 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1172 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1173 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1174 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1175 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1176 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1177 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 4 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 4 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1178 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1179 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1180 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1181 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1182 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1183 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1184 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1185 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1186 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1187 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1188 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 2 and 3 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 2 and 3 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1189 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 2 and 3 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 2 and 3 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1190 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1191 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1192 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1193 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "items at indices 0 and 1 are not unique", 97s # "instanceLocation": "", 97s # "keywordLocation": "/uniqueItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1194 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/additionalItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/additionalItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1195 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1196 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1197 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1198 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1199 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1200 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1201 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1202 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1203 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1204 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1205 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1206 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1207 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1208 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1209 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1210 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1211 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1212 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1213 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1214 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1215 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1216 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1217 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1218 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1219 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1220 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1221 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1222 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/additionalItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional item not permitted", 97s # "instanceLocation": "/2", 97s # "keywordLocation": "/additionalItems" 97s # }, 97s # { 97s # "error": "subschema is not valid against all additional items", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 1223 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "applicator vocabulary still works" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 97s # "error": "property not permitted", 97s # "instanceLocation": "/badProperty", 97s # "keywordLocation": "/properties/badProperty" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 97s # "error": "property not permitted", 97s # "instanceLocation": "/badProperty", 97s # "keywordLocation": "/properties/badProperty" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/properties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1224 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: valid number" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1225 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: invalid number, but it still validates" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1226 - vocabulary.json: "ignore unrecognized optional vocabulary" - "string value" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not number", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1227 - vocabulary.json: "ignore unrecognized optional vocabulary" - "number value" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 1228 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "exact match to enum, and type matches" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1229 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "in implementations that strip $anchor, this may match either $def" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/$ref/enum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/$ref/enum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 97s # "error": "got object, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1230 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "match $ref to $anchor" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1231 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "no match on enum or $ref to $anchor" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/$ref/enum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/$ref/enum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 1232 - optional/bignum.json: "integer" - "a bignum is an integer" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1233 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1234 - optional/bignum.json: "number" - "a bignum is a number" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1235 - optional/bignum.json: "number" - "a negative bignum is a number" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1236 - optional/bignum.json: "string" - "a bignum is not a string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/type" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1237 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1238 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMaximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMaximum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1239 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1240 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMinimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 97s # "instanceLocation": "", 97s # "keywordLocation": "/exclusiveMinimum" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 1241 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "first item not a string is invalid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems/0/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/$ref/prefixItems/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems", 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/prefixItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems/0/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "/0", 97s # "keywordLocation": "/$ref/prefixItems/0/type" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems", 97s # "error": "not all items are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref/prefixItems" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1242 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "first item is a string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1243 - optional/cross-draft.json: "refs to historic drafts are processed as historic drafts" - "missing bar is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 1244 - optional/dependencies-compatibility.json: "single dependency" - "neither" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1245 - optional/dependencies-compatibility.json: "single dependency" - "nondependant" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1246 - optional/dependencies-compatibility.json: "single dependency" - "with dependency" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1247 - optional/dependencies-compatibility.json: "single dependency" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "dependencies": { 97s # "bar": [ 97s # "foo" 97s # ] 97s # } 97s # } 97s # data: { 97s # "bar": 2 97s # } 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1248 - optional/dependencies-compatibility.json: "single dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1249 - optional/dependencies-compatibility.json: "single dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1250 - optional/dependencies-compatibility.json: "single dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1251 - optional/dependencies-compatibility.json: "empty dependents" - "empty object" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1252 - optional/dependencies-compatibility.json: "empty dependents" - "object with one property" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1253 - optional/dependencies-compatibility.json: "empty dependents" - "non-object is valid" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1254 - optional/dependencies-compatibility.json: "multiple dependents required" - "neither" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1255 - optional/dependencies-compatibility.json: "multiple dependents required" - "nondependants" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1256 - optional/dependencies-compatibility.json: "multiple dependents required" - "with dependencies" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1257 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "dependencies": { 97s # "quux": [ 97s # "foo", 97s # "bar" 97s # ] 97s # } 97s # } 97s # data: { 97s # "foo": 1, 97s # "quux": 2 97s # } 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1258 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing other dependency" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "dependencies": { 97s # "quux": [ 97s # "foo", 97s # "bar" 97s # ] 97s # } 97s # } 97s # data: { 97s # "bar": 1, 97s # "quux": 2 97s # } 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1259 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing both dependencies" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "dependencies": { 97s # "quux": [ 97s # "foo", 97s # "bar" 97s # ] 97s # } 97s # } 97s # data: { 97s # "quux": 1 97s # } 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1260 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1261 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1262 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF missing dependent" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "dependencies": { 97s # "foo\nbar": [ 97s # "foo\rbar" 97s # ], 97s # "foo\"bar": [ 97s # "foo'bar" 97s # ] 97s # } 97s # } 97s # data: { 97s # "foo": 2, 97s # "foo\nbar": 1 97s # } 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1263 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "dependencies": { 97s # "foo\nbar": [ 97s # "foo\rbar" 97s # ], 97s # "foo\"bar": [ 97s # "foo'bar" 97s # ] 97s # } 97s # } 97s # data: { 97s # "foo\"bar": 2 97s # } 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1264 - optional/dependencies-compatibility.json: "single schema dependency" - "valid" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1265 - optional/dependencies-compatibility.json: "single schema dependency" - "no dependency" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1266 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "dependencies": { 97s # "bar": { 97s # "properties": { 97s # "bar": { 97s # "type": "integer" 97s # }, 97s # "foo": { 97s # "type": "integer" 97s # } 97s # } 97s # } 97s # } 97s # } 97s # data: { 97s # "bar": 2, 97s # "foo": "quux" 97s # } 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1267 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type other" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "dependencies": { 97s # "bar": { 97s # "properties": { 97s # "bar": { 97s # "type": "integer" 97s # }, 97s # "foo": { 97s # "type": "integer" 97s # } 97s # } 97s # } 97s # } 97s # } 97s # data: { 97s # "bar": "quux", 97s # "foo": 2 97s # } 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1268 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type both" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "dependencies": { 97s # "bar": { 97s # "properties": { 97s # "bar": { 97s # "type": "integer" 97s # }, 97s # "foo": { 97s # "type": "integer" 97s # } 97s # } 97s # } 97s # } 97s # } 97s # data: { 97s # "bar": "quux", 97s # "foo": "quux" 97s # } 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1269 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1270 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1271 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1272 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema true is valid" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1273 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema false is invalid" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "dependencies": { 97s # "bar": false, 97s # "foo": true 97s # } 97s # } 97s # data: { 97s # "bar": 2 97s # } 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1274 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with both properties is invalid" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "dependencies": { 97s # "bar": false, 97s # "foo": true 97s # } 97s # } 97s # data: { 97s # "bar": 2, 97s # "foo": 1 97s # } 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1275 - optional/dependencies-compatibility.json: "boolean subschemas" - "empty object is valid" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1276 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s ok 1277 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "dependencies": { 97s # "foo\tbar": { 97s # "minProperties": 4 97s # }, 97s # "foo'bar": { 97s # "required": [ 97s # "foo\"bar" 97s # ] 97s # } 97s # } 97s # } 97s # data: { 97s # "foo'bar": { 97s # "foo\"bar": 1 97s # } 97s # } 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1278 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "dependencies": { 97s # "foo\tbar": { 97s # "minProperties": 4 97s # }, 97s # "foo'bar": { 97s # "required": [ 97s # "foo\"bar" 97s # ] 97s # } 97s # } 97s # } 97s # data: { 97s # "a": 2, 97s # "foo\tbar": 1 97s # } 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1279 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "dependencies": { 97s # "foo\tbar": { 97s # "minProperties": 4 97s # }, 97s # "foo'bar": { 97s # "required": [ 97s # "foo\"bar" 97s # ] 97s # } 97s # } 97s # } 97s # data: { 97s # "foo'bar": 1 97s # } 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s # 97s ok 1280 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1281 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1282 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1283 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1284 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1285 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1286 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1287 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1288 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s 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" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "pattern": "^\\d$", 97s # "type": "string" 97s # } 97s # data: "߀" 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s 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" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "pattern": "^\\d$", 97s # "type": "string" 97s # } 97s # data: "߀" 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s 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" 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false # 97s 1..1 97s } 97s 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" 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected true; got false 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "pattern": "^\\D$", 97s # "type": "string" 97s # } 97s # data: "߀" 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s 1..1 97s } 97s 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" 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected true; got false 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "pattern": "^\\D$", 97s # "type": "string" 97s # } 97s # data: "߀" 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s 1..1 97s } 97s ok 1294 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true # 97s 1..1 97s } 97s 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" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "pattern": "^\\w$", 97s # "type": "string" 97s # } 97s # data: "é" 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s 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" 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false # 97s 1..1 97s } 97s 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" 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected true; got false 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "pattern": "^\\W$", 97s # "type": "string" 97s # } 97s # data: "é" 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s 1..1 97s } 97s ok 1298 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1299 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1300 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1301 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1302 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1303 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected true; got false 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "pattern": "^\\s$", 97s # "type": "string" 97s # } 97s # data: "" 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s 1..1 97s } 97s ok 1304 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1305 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1306 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1307 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1308 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1309 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1310 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1311 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1312 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1313 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s 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" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "pattern": "^\\S$", 97s # "type": "string" 97s # } 97s # data: "" 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1315 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1316 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1317 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1318 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1319 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1320 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1321 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1322 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1323 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1324 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s 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" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "pattern": "\\wcole" 97s # } 97s # 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." 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s 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" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "pattern": "\\wcole" 97s # } 97s # 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." 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1327 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1328 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1329 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1330 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1331 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1332 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s 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" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "pattern": "^\\d+$" 97s # } 97s # data: "৪২" 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1334 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1335 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1336 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1337 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1338 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1339 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1340 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/L'ÉCOLE", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/L'ÉCOLE", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1341 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s 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" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "additionalProperties": false, 97s # "patternProperties": { 97s # "\\wcole": true 97s # }, 97s # "type": "object" 97s # } 97s # data: { 97s # "l'école": "pas de vraie vie" 97s # } 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s 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" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "additionalProperties": false, 97s # "patternProperties": { 97s # "\\wcole": true 97s # }, 97s # "type": "object" 97s # } 97s # data: { 97s # "l'école": "pas de vraie vie" 97s # } 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1344 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/L'ÉCOLE", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/L'ÉCOLE", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1345 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/l'école", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/l'école", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1346 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/l'école", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/l'école", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1347 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1348 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1349 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/-%#", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/-%#", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s 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" 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected false; got true 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "additionalProperties": false, 97s # "patternProperties": { 97s # "^\\d+$": true 97s # }, 97s # "type": "object" 97s # } 97s # data: { 97s # "৪২": "khajit has wares if you have coin" 97s # } 97s # result: { 97s # "valid": true 97s # } 97s 1..1 97s } 97s ok 1351 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1352 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/-%#", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "additional property not permitted", 97s # "instanceLocation": "/-%#", 97s # "keywordLocation": "/additionalProperties" 97s # }, 97s # { 97s # "error": "not all additional properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/additionalProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1353 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 1354 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 1355 - optional/id.json: "$id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1356 - optional/id.json: "$id inside an enum is not a real identifier" - "match $ref to $id" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1357 - optional/id.json: "$id inside an enum is not a real identifier" - "no match on enum or $ref to $id" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/$ref/enum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/id/my_identifier.json#/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 97s # "error": "value does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/$ref/enum" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/id/my_identifier.json#/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 1358 - optional/no-schema.json: "validation without $schema" - "a 3-character string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1359 - optional/no-schema.json: "validation without $schema" - "a 1-character string is not valid" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "length is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "length is less than 2", 97s # "instanceLocation": "", 97s # "keywordLocation": "/minLength" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1360 - optional/no-schema.json: "validation without $schema" - "a non-string is valid" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s # 97s ok 1361 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1362 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1363 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1364 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1365 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1366 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1367 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "pattern does not match", 97s # "instanceLocation": "", 97s # "keywordLocation": "/pattern" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1368 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1369 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1370 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1371 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/🐲", 97s # "keywordLocation": "/patternProperties/^🐲*$/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/🐲", 97s # "keywordLocation": "/patternProperties/^🐲*$/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1372 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/🐲🐲", 97s # "keywordLocation": "/patternProperties/^🐲*$/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "got string, not integer", 97s # "instanceLocation": "/🐲🐲", 97s # "keywordLocation": "/patternProperties/^🐲*$/type" 97s # }, 97s # { 97s # "error": "not all properties are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/patternProperties" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s ok 1373 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "match" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected true; got false 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "properties": { 97s # "bar": { 97s # "$ref": "#/unknown-keyword" 97s # } 97s # }, 97s # "unknown-keyword": { 97s # "type": "integer" 97s # } 97s # } 97s # data: { 97s # "bar": 3 97s # } 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s 1..1 97s } 97s ok 1374 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "mismatch" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false # 97s 1..1 97s } 97s ok 1375 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "match" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected true; got false 97s # schema: { 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "properties": { 97s # "bar": { 97s # "$ref": "#/properties/foo/unknown-keyword" 97s # }, 97s # "foo": { 97s # "unknown-keyword": { 97s # "type": "integer" 97s # } 97s # } 97s # } 97s # } 97s # data: { 97s # "bar": 3 97s # } 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s 1..1 97s } 97s ok 1376 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "mismatch" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "errors": [ 97s # { 97s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 97s # "instanceLocation": "/bar", 97s # "keywordLocation": "/properties/bar/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false # 97s 1..1 97s } 97s ok 1377 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "match" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "/base#/$ref", 97s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "/base#/$ref", 97s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s not ok 1 - evaluation result is incorrect # 97s # Failed test (with amnesty) 'evaluation result is incorrect' 97s # at t/zzz-acceptance-draft2019-09.t line 54. 97s # expected true; got false 97s # schema: { 97s # "$id": "/base", 97s # "$ref": "#/examples/0", 97s # "$schema": "https://json-schema.org/draft/2019-09/schema", 97s # "examples": [ 97s # { 97s # "type": "string" 97s # } 97s # ] 97s # } 97s # data: "a string" 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "/base#/$ref", 97s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s 1..1 97s } 97s ok 1378 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "mismatch" { # TODO Test marked TODO via "todo_tests" 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "/base#/$ref", 97s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "/base#/$ref", 97s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 97s # "instanceLocation": "", 97s # "keywordLocation": "/$ref" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false # 97s 1..1 97s } 97s # 97s 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" { 97s # result: { 97s # "valid": true 97s # } 97s # short-circuited result: { 97s # "valid": true 97s # } 97s ok 1 - test passes: data is valid: true 97s 1..1 97s } 97s ok 1380 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/$ref/not" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/not" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 97s # "error": "got null, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/2/$ref/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/$ref/not" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/not" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 97s # "error": "got null, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/2/$ref/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s ok 1381 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 97s # result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/$ref/not" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/not" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/2/$ref/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s # short-circuited result: { 97s # "errors": [ 97s # { 97s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/0/$ref/not" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 97s # "error": "subschema is valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/1/$ref/not" 97s # }, 97s # { 97s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 97s # "error": "got integer, not string", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf/2/$ref/type" 97s # }, 97s # { 97s # "error": "no subschemas are valid", 97s # "instanceLocation": "", 97s # "keywordLocation": "/anyOf" 97s # } 97s # ], 97s # "valid": false 97s # } 97s ok 1 - test passes: data is valid: false 97s 1..1 97s } 97s # 97s # generated with: Test::JSON::Schema::Acceptance 1.029 97s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 97s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 97s # specification version: draft2019-09 97s # optional tests included: yes 97s # skipping directory: optional/format 97s # 97s # filename pass todo-fail fail 97s # --------------------------------------------------------------- 97s # additionalItems.json 20 0 0 97s # additionalProperties.json 21 0 0 97s # allOf.json 30 0 0 97s # anchor.json 8 0 0 97s # anyOf.json 18 0 0 97s # boolean_schema.json 18 0 0 97s # const.json 50 0 0 97s # contains.json 21 0 0 97s # content.json 18 0 0 97s # default.json 7 0 0 97s # defs.json 2 0 0 97s # dependentRequired.json 20 0 0 97s # dependentSchemas.json 20 0 0 97s # enum.json 45 0 0 97s # exclusiveMaximum.json 4 0 0 97s # exclusiveMinimum.json 4 0 0 97s # format.json 114 0 0 97s # if-then-else.json 26 0 0 97s # infinite-loop-detection.json 2 0 0 97s # items.json 28 0 0 97s # maxContains.json 12 0 0 97s # maxItems.json 6 0 0 97s # maxLength.json 7 0 0 97s # maxProperties.json 10 0 0 97s # maximum.json 8 0 0 97s # minContains.json 28 0 0 97s # minItems.json 6 0 0 97s # minLength.json 7 0 0 97s # minProperties.json 8 0 0 97s # minimum.json 11 0 0 97s # multipleOf.json 10 0 0 97s # not.json 40 0 0 97s # oneOf.json 27 0 0 97s # pattern.json 9 0 0 97s # patternProperties.json 23 0 0 97s # properties.json 28 0 0 97s # propertyNames.json 20 0 0 97s # recursiveRef.json 34 0 0 97s # ref.json 79 0 0 97s # refRemote.json 31 0 0 97s # required.json 16 0 0 97s # type.json 80 0 0 97s # unevaluatedItems.json 55 0 0 97s # unevaluatedProperties.json 122 0 0 97s # uniqueItems.json 69 0 0 97s # vocabulary.json 5 0 0 97s # optional/anchor.json 4 0 0 97s # optional/bignum.json 9 0 0 97s # optional/cross-draft.json 3 0 0 97s # optional/dependencies-compatibility.json 22 14 0 97s # optional/ecmascript-regex.json 60 14 0 97s # optional/float-overflow.json 1 0 0 97s # optional/id.json 3 0 0 97s # optional/no-schema.json 3 0 0 97s # optional/non-bmp-regex.json 12 0 0 97s # optional/refOfUnknownKeyword.json 3 3 0 97s # optional/unknownKeyword.json 3 0 0 97s # --------------------------------------------------------------- 97s # TOTAL 1350 31 0 97s # 97s # Congratulations, all non-optional tests are passing! 97s # 97s ok 1382 - no leaks in the main evaluator object 97s ok 1383 - no leaks in the short-circuiting evaluator object 97s 1..1383 97s ok 98s t/zzz-acceptance-draft2020-12-format.t .. 98s # Seeded srand with seed '20251102' from local date. 98s # 98s # AUTHOR_TESTING: 98s # AUTOMATED_TESTING: 1 98s # EXTENDED_TESTING: 98s # NO_TODO: 98s # TEST_DIR: 98s # NO_SHORT_CIRCUIT: 98s # 98s # Using JSON decoder: Cpanel::JSON::XS 4.39 98s # 98s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2020-12/optional/format against draft2020-12... 98s # 98s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date-time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 26 - date.json: "validation of date strings" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 27 - date.json: "validation of date strings" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 28 - date.json: "validation of date strings" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 29 - date.json: "validation of date strings" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 30 - date.json: "validation of date strings" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 31 - date.json: "validation of date strings" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 32 - date.json: "validation of date strings" - "a valid date string" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 33 - date.json: "validation of date strings" - "a valid date string with 31 days in January" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 34 - date.json: "validation of date strings" - "a invalid date string with 32 days in January" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 35 - date.json: "validation of date strings" - "a valid date string with 28 days in February (normal)" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 36 - date.json: "validation of date strings" - "a invalid date string with 29 days in February (normal)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 37 - date.json: "validation of date strings" - "a valid date string with 29 days in February (leap)" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 38 - date.json: "validation of date strings" - "a invalid date string with 30 days in February (leap)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 39 - date.json: "validation of date strings" - "a valid date string with 31 days in March" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 40 - date.json: "validation of date strings" - "a invalid date string with 32 days in March" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 41 - date.json: "validation of date strings" - "a valid date string with 30 days in April" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 42 - date.json: "validation of date strings" - "a invalid date string with 31 days in April" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 43 - date.json: "validation of date strings" - "a valid date string with 31 days in May" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 44 - date.json: "validation of date strings" - "a invalid date string with 32 days in May" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 45 - date.json: "validation of date strings" - "a valid date string with 30 days in June" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 46 - date.json: "validation of date strings" - "a invalid date string with 31 days in June" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 47 - date.json: "validation of date strings" - "a valid date string with 31 days in July" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 48 - date.json: "validation of date strings" - "a invalid date string with 32 days in July" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 49 - date.json: "validation of date strings" - "a valid date string with 31 days in August" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 50 - date.json: "validation of date strings" - "a invalid date string with 32 days in August" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 51 - date.json: "validation of date strings" - "a valid date string with 30 days in September" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 52 - date.json: "validation of date strings" - "a invalid date string with 31 days in September" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 53 - date.json: "validation of date strings" - "a valid date string with 31 days in October" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 54 - date.json: "validation of date strings" - "a invalid date string with 32 days in October" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 55 - date.json: "validation of date strings" - "a valid date string with 30 days in November" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 56 - date.json: "validation of date strings" - "a invalid date string with 31 days in November" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 57 - date.json: "validation of date strings" - "a valid date string with 31 days in December" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 58 - date.json: "validation of date strings" - "a invalid date string with 32 days in December" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 59 - date.json: "validation of date strings" - "a invalid date string with invalid month" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 60 - date.json: "validation of date strings" - "an invalid date string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 61 - date.json: "validation of date strings" - "only RFC3339 not all of ISO 8601 are valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 62 - date.json: "validation of date strings" - "non-padded month dates are not valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 63 - date.json: "validation of date strings" - "non-padded day dates are not valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 64 - date.json: "validation of date strings" - "invalid month" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 65 - date.json: "validation of date strings" - "invalid month-day combination" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 66 - date.json: "validation of date strings" - "2021 is not a leap year" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 67 - date.json: "validation of date strings" - "2020 is a leap year" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 68 - date.json: "validation of date strings" - "invalid non-ASCII '৪' (a Bengali 4)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 69 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 70 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 71 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 72 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid date string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 73 - duration.json: "validation of duration strings" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 74 - duration.json: "validation of duration strings" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 75 - duration.json: "validation of duration strings" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 76 - duration.json: "validation of duration strings" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 77 - duration.json: "validation of duration strings" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 78 - duration.json: "validation of duration strings" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 79 - duration.json: "validation of duration strings" - "a valid duration string" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 80 - duration.json: "validation of duration strings" - "an invalid duration string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 81 - duration.json: "validation of duration strings" - "must start with P" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 82 - duration.json: "validation of duration strings" - "no elements present" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 83 - duration.json: "validation of duration strings" - "no time elements present" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 84 - duration.json: "validation of duration strings" - "no date or time elements present" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 85 - duration.json: "validation of duration strings" - "elements out of order" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 86 - duration.json: "validation of duration strings" - "missing time separator" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 87 - duration.json: "validation of duration strings" - "time element in the date position" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 88 - duration.json: "validation of duration strings" - "four years duration" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 89 - duration.json: "validation of duration strings" - "zero time, in seconds" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 90 - duration.json: "validation of duration strings" - "zero time, in days" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 91 - duration.json: "validation of duration strings" - "one month duration" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 92 - duration.json: "validation of duration strings" - "one minute duration" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 93 - duration.json: "validation of duration strings" - "one and a half days, in hours" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 94 - duration.json: "validation of duration strings" - "one and a half days, in days and hours" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 95 - duration.json: "validation of duration strings" - "two weeks" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 96 - duration.json: "validation of duration strings" - "weeks cannot be combined with other units" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 97 - duration.json: "validation of duration strings" - "invalid non-ASCII '২' (a Bengali 2)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 98 - duration.json: "validation of duration strings" - "element without unit" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid duration string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s 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" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "regex" 98s # } 98s # data: "\\a" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s # 98s ok 100 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 101 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 102 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 103 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 104 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 105 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 106 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 107 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 108 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 109 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 110 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 111 - email.json: "validation of e-mail addresses" - "a quoted string with a space in the local part is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 112 - email.json: "validation of e-mail addresses" - "a quoted string with a double dot in the local part is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 113 - email.json: "validation of e-mail addresses" - "a quoted string with a @ in the local part is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 114 - email.json: "validation of e-mail addresses" - "an IPv4-address-literal after the @ is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 115 - email.json: "validation of e-mail addresses" - "an IPv6-address-literal after the @ is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 116 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 117 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 118 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 119 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 120 - email.json: "validation of e-mail addresses" - "an invalid domain" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "email" 98s # } 98s # data: "joe.bloggs@invalid=domain.com" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s ok 121 - email.json: "validation of e-mail addresses" - "an invalid IPv4-address-literal" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "email" 98s # } 98s # data: "joe.bloggs@[127.0.0.300]" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s # 98s ok 122 - hostname.json: "validation of host names" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 123 - hostname.json: "validation of host names" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 124 - hostname.json: "validation of host names" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 125 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 126 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 127 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 128 - hostname.json: "validation of host names" - "a valid host name" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 129 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 130 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 131 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 132 - hostname.json: "validation of host names" - "a host name with a component too long" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 133 - hostname.json: "validation of host names" - "starts with hyphen" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 134 - hostname.json: "validation of host names" - "ends with hyphen" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 135 - hostname.json: "validation of host names" - "starts with underscore" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 136 - hostname.json: "validation of host names" - "ends with underscore" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 137 - hostname.json: "validation of host names" - "contains underscore" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 138 - hostname.json: "validation of host names" - "maximum label length" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 139 - hostname.json: "validation of host names" - "exceeds maximum label length" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 140 - hostname.json: "validation of host names" - "single label" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 141 - hostname.json: "validation of host names" - "single label with hyphen" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 142 - hostname.json: "validation of host names" - "single label with digits" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 143 - hostname.json: "validation of host names" - "single label starting with digit" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 144 - hostname.json: "validation of host names" - "single label ending with digit" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 145 - hostname.json: "validation of host names" - "empty string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 146 - hostname.json: "validation of host names" - "single dot" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 147 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 148 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 149 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 150 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 151 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 152 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 153 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid idn e-mail (example@example.test in Hangul)" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 154 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid idn e-mail address" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 155 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid e-mail address" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 156 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid e-mail address" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-email string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 157 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 158 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 159 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 160 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 161 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 162 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s 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" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s 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" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s 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" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "idn-hostname" 98s # } 98s # data: "실〮례.테스트" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s 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" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s ok 167 - idn-hostname.json: "validation of internationalized host names" - "invalid label, correct Punycode" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s ok 168 - idn-hostname.json: "validation of internationalized host names" - "valid Chinese Punycode" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 169 - idn-hostname.json: "validation of internationalized host names" - "invalid Punycode" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "idn-hostname" 98s # } 98s # data: "xn--X" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s 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" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "idn-hostname" 98s # } 98s # data: "XN--aa---o47jg78q" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s ok 171 - idn-hostname.json: "validation of internationalized host names" - "U-label starts with a dash" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s ok 172 - idn-hostname.json: "validation of internationalized host names" - "U-label ends with a dash" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s 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" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s ok 174 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Spacing Combining Mark" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s ok 175 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Nonspacing Mark" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s ok 176 - idn-hostname.json: "validation of internationalized host names" - "Begins with an Enclosing Mark" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s 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" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s 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" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s 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" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "idn-hostname" 98s # } 98s # data: "ـߺ" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s 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" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "idn-hostname" 98s # } 98s # data: "〱〲〳〴〵〮〯〻" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s ok 181 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no preceding 'l'" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "idn-hostname" 98s # } 98s # data: "a·l" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s ok 182 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing preceding" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "idn-hostname" 98s # } 98s # data: "·l" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s ok 183 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no following 'l'" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "idn-hostname" 98s # } 98s # data: "l·a" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s ok 184 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing following" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "idn-hostname" 98s # } 98s # data: "l·" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s ok 185 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with surrounding 'l's" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 186 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by Greek" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "idn-hostname" 98s # } 98s # data: "α͵S" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s ok 187 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by anything" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "idn-hostname" 98s # } 98s # data: "α͵" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s ok 188 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA followed by Greek" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 189 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s ok 190 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by anything" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "idn-hostname" 98s # } 98s # data: "׳ב" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s ok 191 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 192 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s ok 193 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by anything" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "idn-hostname" 98s # } 98s # data: "״ב" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s ok 194 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s 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" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "idn-hostname" 98s # } 98s # data: "def・abc" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s ok 196 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no other characters" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "idn-hostname" 98s # } 98s # data: "・" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s ok 197 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Hiragana" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 198 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Katakana" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 199 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Han" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s 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" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s 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" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s 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" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 203 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by Virama" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s ok 204 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by anything" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s ok 205 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 206 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s 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" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 208 - idn-hostname.json: "validation of internationalized host names" - "single label" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 209 - idn-hostname.json: "validation of internationalized host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 210 - idn-hostname.json: "validation of internationalized host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 211 - idn-hostname.json: "validation of internationalized host names" - "single label starting with digit" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 212 - idn-hostname.json: "validation of internationalized host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 213 - idn-hostname.json: "validation of internationalized host names" - "empty string" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false # 98s 1..1 98s } 98s ok 214 - idn-hostname.json: "validation of separators in internationalized host names" - "single dot" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 215 - idn-hostname.json: "validation of separators in internationalized host names" - "single ideographic full stop" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 216 - idn-hostname.json: "validation of separators in internationalized host names" - "single fullwidth full stop" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 217 - idn-hostname.json: "validation of separators in internationalized host names" - "single halfwidth ideographic full stop" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid idn-hostname string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 218 - idn-hostname.json: "validation of separators in internationalized host names" - "dot as label separator" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 219 - idn-hostname.json: "validation of separators in internationalized host names" - "ideographic full stop as label separator" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 220 - idn-hostname.json: "validation of separators in internationalized host names" - "fullwidth full stop as label separator" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 221 - idn-hostname.json: "validation of separators in internationalized host names" - "halfwidth ideographic full stop as label separator" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s # 98s ok 222 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 223 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 224 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 225 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 226 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 227 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 228 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 229 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 230 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 231 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 232 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 233 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 234 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 235 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 236 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 237 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv4 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 238 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 239 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 240 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 241 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 242 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 243 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 244 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 245 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 246 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 247 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 248 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 249 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 250 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 251 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 252 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 253 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 254 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 255 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 256 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 257 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 258 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 259 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 260 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 261 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 262 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 263 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 264 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 265 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 266 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 267 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 268 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 269 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 270 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 271 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 272 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 273 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 274 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 275 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 276 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 277 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid ipv6 string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 278 - iri-reference.json: "validation of IRI References" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 279 - iri-reference.json: "validation of IRI References" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 280 - iri-reference.json: "validation of IRI References" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 281 - iri-reference.json: "validation of IRI References" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 282 - iri-reference.json: "validation of IRI References" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 283 - iri-reference.json: "validation of IRI References" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 284 - iri-reference.json: "validation of IRI References" - "a valid IRI" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 285 - iri-reference.json: "validation of IRI References" - "a valid protocol-relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 286 - iri-reference.json: "validation of IRI References" - "a valid relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 287 - iri-reference.json: "validation of IRI References" - "an invalid IRI Reference" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "iri-reference" 98s # } 98s # data: "\\\\WINDOWS\\filëßåré" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s ok 288 - iri-reference.json: "validation of IRI References" - "a valid IRI Reference" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 289 - iri-reference.json: "validation of IRI References" - "a valid IRI fragment" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 290 - iri-reference.json: "validation of IRI References" - "an invalid IRI fragment" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "iri-reference" 98s # } 98s # data: "#ƒräg\\mênt" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s # 98s ok 291 - iri.json: "validation of IRIs" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 292 - iri.json: "validation of IRIs" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 293 - iri.json: "validation of IRIs" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 294 - iri.json: "validation of IRIs" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 295 - iri.json: "validation of IRIs" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 296 - iri.json: "validation of IRIs" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 297 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 298 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag and parentheses" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 299 - iri.json: "validation of IRIs" - "a valid IRI with URL-encoded stuff" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 300 - iri.json: "validation of IRIs" - "a valid IRI with many special characters" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 301 - iri.json: "validation of IRIs" - "a valid IRI based on IPv6" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 302 - iri.json: "validation of IRIs" - "an invalid IRI based on IPv6" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "iri" 98s # } 98s # data: "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s ok 303 - iri.json: "validation of IRIs" - "an invalid relative IRI Reference" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid iri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid iri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 304 - iri.json: "validation of IRIs" - "an invalid IRI" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid iri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid iri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 305 - iri.json: "validation of IRIs" - "an invalid IRI though valid IRI reference" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid iri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid iri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 306 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 307 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 308 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 309 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 310 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 311 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 312 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 313 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 314 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 315 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 316 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 317 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 318 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 319 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 320 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 321 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 322 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 323 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 324 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 325 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 326 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 327 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 328 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 329 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 330 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 331 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 332 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 333 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 334 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 335 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 336 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 337 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 338 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 339 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 340 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 341 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 342 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 343 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 344 - regex.json: "validation of regular expressions" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 345 - regex.json: "validation of regular expressions" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 346 - regex.json: "validation of regular expressions" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 347 - regex.json: "validation of regular expressions" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 348 - regex.json: "validation of regular expressions" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 349 - regex.json: "validation of regular expressions" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 350 - regex.json: "validation of regular expressions" - "a valid regular expression" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 351 - regex.json: "validation of regular expressions" - "a regular expression with unclosed parens is invalid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid regex string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid regex string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 352 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 353 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 354 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 355 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 356 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 357 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 358 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid upwards RJP" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 359 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid downwards RJP" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 360 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid up and then down RJP, with array index" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 361 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid RJP taking the member or index name" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 362 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "an invalid RJP that is a valid JSON Pointer" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid relative-json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid relative-json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 363 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "negative prefix" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid relative-json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid relative-json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 364 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "explicit positive prefix" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid relative-json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid relative-json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 365 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "\#\# is not a valid json-pointer" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid relative-json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid relative-json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 366 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus json-pointer" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid relative-json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid relative-json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 367 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus octothorpe" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid relative-json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid relative-json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 368 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "empty string" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid relative-json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid relative-json-pointer string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 369 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "multi-digit integer prefix" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s # 98s ok 370 - time.json: "validation of time strings" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 371 - time.json: "validation of time strings" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 372 - time.json: "validation of time strings" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 373 - time.json: "validation of time strings" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 374 - time.json: "validation of time strings" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 375 - time.json: "validation of time strings" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 376 - time.json: "validation of time strings" - "a valid time string" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 377 - time.json: "validation of time strings" - "invalid time string with extra leading zeros" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 378 - time.json: "validation of time strings" - "invalid time string with no leading zero for single digit" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 379 - time.json: "validation of time strings" - "hour, minute, second must be two digits" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 380 - time.json: "validation of time strings" - "a valid time string with leap second, Zulu" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 381 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 382 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 383 - time.json: "validation of time strings" - "valid leap second, zero time-offset" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 384 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong hour)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 385 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong minute)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 386 - time.json: "validation of time strings" - "valid leap second, positive time-offset" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 387 - time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 388 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 389 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 390 - time.json: "validation of time strings" - "valid leap second, negative time-offset" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 391 - time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 392 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 393 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 394 - time.json: "validation of time strings" - "a valid time string with second fraction" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 395 - time.json: "validation of time strings" - "a valid time string with precise second fraction" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 396 - time.json: "validation of time strings" - "a valid time string with plus offset" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 397 - time.json: "validation of time strings" - "a valid time string with minus offset" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 398 - time.json: "validation of time strings" - "hour, minute in time-offset must be two digits" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 399 - time.json: "validation of time strings" - "a valid time string with case-insensitive Z" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 400 - time.json: "validation of time strings" - "an invalid time string with invalid hour" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 401 - time.json: "validation of time strings" - "an invalid time string with invalid minute" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 402 - time.json: "validation of time strings" - "an invalid time string with invalid second" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 403 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong hour)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 404 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong minute)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 405 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset hour" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 406 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset minute" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 407 - time.json: "validation of time strings" - "an invalid time string with invalid time with both Z and numoffset" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 408 - time.json: "validation of time strings" - "an invalid offset indicator" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 409 - time.json: "validation of time strings" - "only RFC3339 not all of ISO 8601 are valid" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 410 - time.json: "validation of time strings" - "no time offset" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 411 - time.json: "validation of time strings" - "no time offset with second fraction" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 412 - time.json: "validation of time strings" - "invalid non-ASCII '২' (a Bengali 2)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 413 - time.json: "validation of time strings" - "offset not starting with plus or minus" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 414 - time.json: "validation of time strings" - "contains letters" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid time string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 415 - unknown.json: "unknown format" - "unknown formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 416 - unknown.json: "unknown format" - "unknown formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 417 - unknown.json: "unknown format" - "unknown formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 418 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 419 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 420 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 421 - unknown.json: "unknown format" - "unknown formats ignore strings" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s # 98s ok 422 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 423 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 424 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 425 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 426 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 427 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 428 - uri-reference.json: "validation of URI References" - "a valid URI" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 429 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 430 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 431 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri-reference string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri-reference string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 432 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 433 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 434 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri-reference string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri-reference string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s # 98s ok 435 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 436 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 437 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 438 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 439 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 440 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 441 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 442 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "uri-template" 98s # } 98s # data: "http://example.com/dictionary/{term:1}/{term" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s ok 443 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s ok 444 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true # 98s 1..1 98s } 98s # 98s ok 445 - uri.json: "validation of URIs" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 446 - uri.json: "validation of URIs" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 447 - uri.json: "validation of URIs" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 448 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 449 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 450 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 451 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 452 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 453 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 454 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 455 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 456 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 457 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 458 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 459 - uri.json: "validation of URIs" - "a valid URL " { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 460 - uri.json: "validation of URIs" - "a valid mailto URI" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 461 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 462 - uri.json: "validation of URIs" - "a valid tel URI" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 463 - uri.json: "validation of URIs" - "a valid URN" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 464 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 465 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 466 - uri.json: "validation of URIs" - "an invalid URI" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 467 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 468 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 469 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uri string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 470 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s not ok 1 - evaluation result is incorrect # 98s # Failed test (with amnesty) 'evaluation result is incorrect' 98s # at t/zzz-acceptance-draft2020-12-format.t line 70. 98s # expected false; got true 98s # schema: { 98s # "$schema": "https://json-schema.org/draft/2020-12/schema", 98s # "format": "uri" 98s # } 98s # data: "bar,baz:foo" 98s # result: { 98s # "valid": true 98s # } 98s 1..1 98s } 98s # 98s ok 471 - uuid.json: "uuid format" - "all string formats ignore integers" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 472 - uuid.json: "uuid format" - "all string formats ignore floats" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 473 - uuid.json: "uuid format" - "all string formats ignore objects" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 474 - uuid.json: "uuid format" - "all string formats ignore arrays" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 475 - uuid.json: "uuid format" - "all string formats ignore booleans" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 476 - uuid.json: "uuid format" - "all string formats ignore nulls" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 477 - uuid.json: "uuid format" - "all upper-case" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 478 - uuid.json: "uuid format" - "all lower-case" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 479 - uuid.json: "uuid format" - "mixed case" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 480 - uuid.json: "uuid format" - "all zeroes is valid" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 481 - uuid.json: "uuid format" - "wrong length" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uuid string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uuid string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 482 - uuid.json: "uuid format" - "missing section" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uuid string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uuid string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 483 - uuid.json: "uuid format" - "bad characters (not hex)" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uuid string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uuid string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 484 - uuid.json: "uuid format" - "no dashes" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uuid string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uuid string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 485 - uuid.json: "uuid format" - "too few dashes" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uuid string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uuid string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 486 - uuid.json: "uuid format" - "too many dashes" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uuid string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uuid string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 487 - uuid.json: "uuid format" - "dashes in the wrong spot" { 98s # result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uuid string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s # short-circuited result: { 98s # "errors": [ 98s # { 98s # "error": "not a valid uuid string", 98s # "instanceLocation": "", 98s # "keywordLocation": "/format" 98s # } 98s # ], 98s # "valid": false 98s # } 98s ok 1 - test passes: data is valid: false 98s 1..1 98s } 98s ok 488 - uuid.json: "uuid format" - "valid version 4" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 489 - uuid.json: "uuid format" - "valid version 5" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 490 - uuid.json: "uuid format" - "hypothetical version 6" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s ok 491 - uuid.json: "uuid format" - "hypothetical version 15" { 98s # result: { 98s # "valid": true 98s # } 98s # short-circuited result: { 98s # "valid": true 98s # } 98s ok 1 - test passes: data is valid: true 98s 1..1 98s } 98s # 98s # generated with: Test::JSON::Schema::Acceptance 1.029 98s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 98s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 98s # specification version: draft2020-12 98s # using custom test directory: /optional/format 98s # optional tests included: yes 98s # 98s # filename pass todo-fail fail 98s # --------------------------------------------------------------- 98s # date-time.json 25 0 0 98s # date.json 47 0 0 98s # duration.json 26 0 0 98s # ecmascript-regex.json 0 1 0 98s # email.json 20 2 0 98s # hostname.json 25 0 0 98s # idn-email.json 10 0 0 98s # idn-hostname.json 50 15 0 98s # ipv4.json 16 0 0 98s # ipv6.json 40 0 0 98s # iri-reference.json 11 2 0 98s # iri.json 14 1 0 98s # json-pointer.json 38 0 0 98s # regex.json 8 0 0 98s # relative-json-pointer.json 18 0 0 98s # time.json 45 0 0 98s # unknown.json 7 0 0 98s # uri-reference.json 13 0 0 98s # uri-template.json 9 1 0 98s # uri.json 25 1 0 98s # uuid.json 21 0 0 98s # --------------------------------------------------------------- 98s # TOTAL 468 23 0 98s # 98s # Congratulations, all non-optional tests are passing! 98s # 98s ok 492 - no leaks in the main evaluator object 98s ok 493 - no leaks in the short-circuiting evaluator object 98s 1..493 98s ok 104s t/zzz-acceptance-draft2020-12.t ......... 104s # Seeded srand with seed '20251102' from local date. 104s # 104s # AUTHOR_TESTING: 104s # AUTOMATED_TESTING: 1 104s # EXTENDED_TESTING: 104s # NO_TODO: 104s # TEST_DIR: 104s # NO_SHORT_CIRCUIT: 104s # 104s # Using JSON decoder: Cpanel::JSON::XS 4.39 104s # 104s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 104s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2020-12 against draft2020-12... 104s # 104s ok 1 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 2 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/quux", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/quux", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 3 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 4 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 5 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 6 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 7 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 8 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/élmény", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/élmény", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 9 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 10 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 11 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not boolean", 104s # "instanceLocation": "/quux", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not boolean", 104s # "instanceLocation": "/quux", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 12 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 13 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not boolean", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not boolean", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 14 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 15 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not boolean", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not boolean", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 16 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 17 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against both keywords" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 18 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against propertyNames, but not additionalProperties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/pear", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/pear", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 19 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties doesn't consider dependentSchemas" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 20 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 21 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar even when foo2 is present" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 22 - allOf.json: "allOf" - "allOf" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 23 - allOf.json: "allOf" - "mismatch second" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/required" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/required" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 24 - allOf.json: "allOf" - "mismatch first" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/required" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/required" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 25 - allOf.json: "allOf" - "wrong type" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/allOf/0/properties/bar/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/properties" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/allOf/0/properties/bar/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/properties" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 26 - allOf.json: "allOf with base schema" - "valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 27 - allOf.json: "allOf with base schema" - "mismatch base schema" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 28 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/required" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/required" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 29 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: baz", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/required" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: baz", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/required" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 30 - allOf.json: "allOf with base schema" - "mismatch both" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/required" 104s # }, 104s # { 104s # "error": "object is missing property: baz", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/required" 104s # }, 104s # { 104s # "error": "subschemas 0, 1 are not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/required" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 31 - allOf.json: "allOf simple types" - "valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 32 - allOf.json: "allOf simple types" - "mismatch one" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is greater than 30", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/maximum" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is greater than 30", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/maximum" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 33 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 34 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 35 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0" 104s # }, 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1" 104s # }, 104s # { 104s # "error": "subschemas 0, 1 are not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 36 - allOf.json: "allOf with one empty schema" - "any data is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 37 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 38 - allOf.json: "allOf with the first empty schema" - "number is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 39 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/type" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/type" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 40 - allOf.json: "allOf with the last empty schema" - "number is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 41 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/type" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/type" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 42 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 43 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/allOf/0/type" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/allOf" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/allOf/0/type" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/allOf" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 44 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # }, 104s # { 104s # "error": "value is not a multiple of 3", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # }, 104s # { 104s # "error": "value is not a multiple of 5", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 45 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # }, 104s # { 104s # "error": "value is not a multiple of 3", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 46 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # }, 104s # { 104s # "error": "value is not a multiple of 5", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 47 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 48 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 3", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # }, 104s # { 104s # "error": "value is not a multiple of 5", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 3", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 49 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 3", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 3", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 50 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 5", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 5", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/multipleOf" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 51 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 52 - anchor.json: "Location-independent identifier" - "match" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 53 - anchor.json: "Location-independent identifier" - "mismatch" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/A/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/A/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 54 - anchor.json: "Location-independent identifier with absolute URI" - "match" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 55 - anchor.json: "Location-independent identifier with absolute URI" - "mismatch" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/bar#/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/bar#/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 56 - anchor.json: "Location-independent identifier with base URI change in subschema" - "match" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 57 - anchor.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested.json#/$defs/B/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested.json#/$defs/B/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 58 - anchor.json: "same $anchor with different base uri" - "$ref resolves to /$defs/A/allOf/1" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 59 - anchor.json: "same $anchor with different base uri" - "$ref does not resolve to /$defs/A/allOf/0" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/child1#/allOf/1/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/child1#/allOf/1/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 60 - anyOf.json: "anyOf" - "first anyOf valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 61 - anyOf.json: "anyOf" - "second anyOf valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 62 - anyOf.json: "anyOf" - "both anyOf valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 63 - anyOf.json: "anyOf" - "neither anyOf valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/type" 104s # }, 104s # { 104s # "error": "value is less than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1/minimum" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/type" 104s # }, 104s # { 104s # "error": "value is less than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1/minimum" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 64 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 65 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 66 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "length is greater than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/maxLength" 104s # }, 104s # { 104s # "error": "length is less than 4", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1/minLength" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "length is greater than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/maxLength" 104s # }, 104s # { 104s # "error": "length is less than 4", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1/minLength" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 67 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 68 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 69 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0" 104s # }, 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0" 104s # }, 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 70 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 71 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 72 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 73 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/anyOf/0/properties/bar/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/properties" 104s # }, 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/anyOf/1/properties/foo/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1/properties" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/anyOf/0/properties/bar/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/properties" 104s # }, 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/anyOf/1/properties/foo/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1/properties" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 74 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 75 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 76 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 77 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/anyOf/0/type" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/anyOf" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/anyOf/0/type" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/anyOf" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 78 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 79 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 80 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 81 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 82 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 83 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 84 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 85 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 86 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 87 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 88 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 89 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 90 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 91 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 92 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 93 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 94 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 95 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 96 - const.json: "const validation" - "same value is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 97 - const.json: "const validation" - "another value is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 98 - const.json: "const validation" - "another type is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 99 - const.json: "const with object" - "same object is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 100 - const.json: "const with object" - "same object with different property order is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 101 - const.json: "const with object" - "another object is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 102 - const.json: "const with object" - "another type is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 103 - const.json: "const with array" - "same array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 104 - const.json: "const with array" - "another array item is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/0': wrong type: integer vs object)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/0': wrong type: integer vs object)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 105 - const.json: "const with array" - "array with additional items is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 106 - const.json: "const with null" - "null is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 107 - const.json: "const with null" - "not null is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 108 - const.json: "const with false does not match 0" - "false is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 109 - const.json: "const with false does not match 0" - "integer zero is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 110 - const.json: "const with false does not match 0" - "float zero is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 111 - const.json: "const with true does not match 1" - "true is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 112 - const.json: "const with true does not match 1" - "integer one is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 113 - const.json: "const with true does not match 1" - "float one is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 114 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 115 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 116 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 117 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 118 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 119 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 120 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 121 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 122 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 123 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 124 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 125 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 126 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 127 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 128 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 129 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 130 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 131 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 132 - const.json: "const with 1 does not match true" - "true is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 133 - const.json: "const with 1 does not match true" - "integer one is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 134 - const.json: "const with 1 does not match true" - "float one is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 135 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 136 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 137 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 138 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 139 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 140 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 141 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 142 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 143 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 144 - const.json: "nul characters in strings" - "match string with nul" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 145 - const.json: "nul characters in strings" - "do not match string lacking nul" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/const" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 146 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 147 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 148 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 149 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than 5", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/contains/minimum" 104s # }, 104s # { 104s # "error": "value is less than 5", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/contains/minimum" 104s # }, 104s # { 104s # "error": "value is less than 5", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/contains/minimum" 104s # }, 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than 5", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/contains/minimum" 104s # }, 104s # { 104s # "error": "value is less than 5", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/contains/minimum" 104s # }, 104s # { 104s # "error": "value is less than 5", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/contains/minimum" 104s # }, 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 150 - contains.json: "contains keyword validation" - "empty array is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 151 - contains.json: "contains keyword validation" - "not array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 152 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 153 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 154 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/contains/const" 104s # }, 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/contains/const" 104s # }, 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/contains/const" 104s # }, 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/contains/const" 104s # }, 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/contains/const" 104s # }, 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/contains/const" 104s # }, 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/contains/const" 104s # }, 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/contains/const" 104s # }, 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 155 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 156 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 157 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/contains" 104s # }, 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/contains" 104s # }, 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 158 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 159 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 160 - contains.json: "items + contains" - "matches items, does not match contains" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 3", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/contains/multipleOf" 104s # }, 104s # { 104s # "error": "value is not a multiple of 3", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/contains/multipleOf" 104s # }, 104s # { 104s # "error": "value is not a multiple of 3", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/contains/multipleOf" 104s # }, 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 3", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/contains/multipleOf" 104s # }, 104s # { 104s # "error": "value is not a multiple of 3", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/contains/multipleOf" 104s # }, 104s # { 104s # "error": "value is not a multiple of 3", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/contains/multipleOf" 104s # }, 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 161 - contains.json: "items + contains" - "does not match items, matches contains" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/items/multipleOf" 104s # }, 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/items/multipleOf" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/items/multipleOf" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 162 - contains.json: "items + contains" - "matches both items and contains" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 163 - contains.json: "items + contains" - "matches neither items nor contains" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/items/multipleOf" 104s # }, 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items/multipleOf" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # }, 104s # { 104s # "error": "value is not a multiple of 3", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/contains/multipleOf" 104s # }, 104s # { 104s # "error": "value is not a multiple of 3", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/contains/multipleOf" 104s # }, 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/items/multipleOf" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 164 - contains.json: "contains with false if subschema" - "any non-empty array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 165 - contains.json: "contains with false if subschema" - "empty array is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 166 - contains.json: "contains with null instance elements" - "allows null items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 167 - content.json: "validation of string-encoded content based on media type" - "a valid JSON document" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 168 - content.json: "validation of string-encoded content based on media type" - "an invalid JSON document; validates true" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 169 - content.json: "validation of string-encoded content based on media type" - "ignores non-strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 170 - content.json: "validation of binary string-encoding" - "a valid base64 string" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 171 - content.json: "validation of binary string-encoding" - "an invalid base64 string (% is not a valid character); validates true" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 172 - content.json: "validation of binary string-encoding" - "ignores non-strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 173 - content.json: "validation of binary-encoded media type documents" - "a valid base64-encoded JSON document" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 174 - content.json: "validation of binary-encoded media type documents" - "a validly-encoded invalid JSON document; validates true" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 175 - content.json: "validation of binary-encoded media type documents" - "an invalid base64 string that is valid JSON; validates true" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 176 - content.json: "validation of binary-encoded media type documents" - "ignores non-strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 177 - content.json: "validation of binary-encoded media type documents with schema" - "a valid base64-encoded JSON document" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 178 - content.json: "validation of binary-encoded media type documents with schema" - "another valid base64-encoded JSON document" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 179 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64-encoded JSON document; validates true" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 180 - content.json: "validation of binary-encoded media type documents with schema" - "an empty object as a base64-encoded JSON document; validates true" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 181 - content.json: "validation of binary-encoded media type documents with schema" - "an empty array as a base64-encoded JSON document" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 182 - content.json: "validation of binary-encoded media type documents with schema" - "a validly-encoded invalid JSON document; validates true" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 183 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64 string that is valid JSON; validates true" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 184 - content.json: "validation of binary-encoded media type documents with schema" - "ignores non-strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 185 - default.json: "invalid type for default" - "valid when property is specified" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 186 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 187 - default.json: "invalid string value for default" - "valid when property is specified" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 188 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s 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)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s 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)" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is greater than 3", 104s # "instanceLocation": "/alpha", 104s # "keywordLocation": "/properties/alpha/maximum" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is greater than 3", 104s # "instanceLocation": "/alpha", 104s # "keywordLocation": "/properties/alpha/maximum" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 192 - defs.json: "validate definition against metaschema" - "valid definition schema" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 193 - defs.json: "validate definition against metaschema" - "invalid definition schema" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/simpleTypes/enum", 104s # "error": "value does not match", 104s # "instanceLocation": "/$defs/foo/type", 104s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/0/$ref/enum" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf/1/type", 104s # "error": "got integer, not array", 104s # "instanceLocation": "/$defs/foo/type", 104s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/1/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf", 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "/$defs/foo/type", 104s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/$defs/foo", 104s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 104s # "error": "subschema 3 is not valid", 104s # "instanceLocation": "/$defs/foo", 104s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties/$defs/additionalProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "/$defs", 104s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/simpleTypes/enum", 104s # "error": "value does not match", 104s # "instanceLocation": "/$defs/foo/type", 104s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/0/$ref/enum" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf/1/type", 104s # "error": "got integer, not array", 104s # "instanceLocation": "/$defs/foo/type", 104s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/1/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf", 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "/$defs/foo/type", 104s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/$defs/foo", 104s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 104s # "error": "subschema 3 is not valid", 104s # "instanceLocation": "/$defs/foo", 104s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties/$defs/additionalProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "/$defs", 104s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 194 - dependentRequired.json: "single dependency" - "neither" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 195 - dependentRequired.json: "single dependency" - "nondependant" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 196 - dependentRequired.json: "single dependency" - "with dependency" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 197 - dependentRequired.json: "single dependency" - "missing dependency" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired/bar" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired/bar" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 198 - dependentRequired.json: "single dependency" - "ignores arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 199 - dependentRequired.json: "single dependency" - "ignores strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 200 - dependentRequired.json: "single dependency" - "ignores other non-objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 201 - dependentRequired.json: "empty dependents" - "empty object" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 202 - dependentRequired.json: "empty dependents" - "object with one property" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 203 - dependentRequired.json: "empty dependents" - "non-object is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 204 - dependentRequired.json: "multiple dependents required" - "neither" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 205 - dependentRequired.json: "multiple dependents required" - "nondependants" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 206 - dependentRequired.json: "multiple dependents required" - "with dependencies" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 207 - dependentRequired.json: "multiple dependents required" - "missing dependency" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired/quux" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired/quux" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 208 - dependentRequired.json: "multiple dependents required" - "missing other dependency" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired/quux" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired/quux" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 209 - dependentRequired.json: "multiple dependents required" - "missing both dependencies" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing properties: foo, bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired/quux" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing properties: foo, bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired/quux" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 210 - dependentRequired.json: "dependencies with escaped characters" - "CRLF" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 211 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 212 - dependentRequired.json: "dependencies with escaped characters" - "CRLF missing dependent" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo\rbar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired/foo\nbar" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo\rbar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired/foo\nbar" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 213 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo'bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired/foo\"bar" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo'bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired/foo\"bar" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentRequired" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 214 - dependentSchemas.json: "single dependency" - "valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 215 - dependentSchemas.json: "single dependency" - "no dependency" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 216 - dependentSchemas.json: "single dependency" - "wrong type" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/bar/properties" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/bar/properties" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 217 - dependentSchemas.json: "single dependency" - "wrong type other" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/bar/properties" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/bar/properties" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 218 - dependentSchemas.json: "single dependency" - "wrong type both" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 104s # }, 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/bar/properties" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/bar/properties" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 219 - dependentSchemas.json: "single dependency" - "ignores arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 220 - dependentSchemas.json: "single dependency" - "ignores strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 221 - dependentSchemas.json: "single dependency" - "ignores other non-objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 222 - dependentSchemas.json: "boolean subschemas" - "object with property having schema true is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 223 - dependentSchemas.json: "boolean subschemas" - "object with property having schema false is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/bar" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/bar" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 224 - dependentSchemas.json: "boolean subschemas" - "object with both properties is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/bar" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/bar" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 225 - dependentSchemas.json: "boolean subschemas" - "empty object is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 226 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 227 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo\"bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/foo'bar/required" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo\"bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/foo'bar/required" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 228 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab invalid under dependent schema" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object has fewer than 4 properties", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object has fewer than 4 properties", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 229 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote invalid under dependent schema" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo\"bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/foo'bar/required" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo\"bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/foo'bar/required" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 230 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches root" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 231 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches dependency" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 232 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches both" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 104s # }, 104s # { 104s # "error": "not all dependencies are satisfied", 104s # "instanceLocation": "", 104s # "keywordLocation": "/dependentSchemas" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 233 - dependentSchemas.json: "dependent subschema incompatible with root" - "no dependency" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s 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" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/$defs/foo/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/$defs/foo/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/$defs/foo/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/$defs/foo/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/$defs/foo/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/$defs/foo/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/root#/$defs/foo/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/$ref/items/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/list#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/root#/$defs/foo/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/$ref/items/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/list#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 242 - dynamicRef.json: "A $dynamicRef without anchor in fragment behaves identical to $ref" - "An array of strings is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/$defs/items/type", 104s # "error": "got string, not number", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/$ref/items/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/$defs/items/type", 104s # "error": "got string, not number", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/$ref/items/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/$defs/items/type", 104s # "error": "got string, not number", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/$ref/items/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 243 - dynamicRef.json: "A $dynamicRef without anchor in fragment behaves identical to $ref" - "An array of numbers is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/root#/$defs/foo/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/$ref/$ref/items/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/list#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/root#/$defs/foo/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/$ref/$ref/items/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/list#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 246 - dynamicRef.json: "An $anchor with the same name as a $dynamicAnchor is not used for dynamic scope resolution" - "Any array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties/foo/const", 104s # "error": "value does not match", 104s # "instanceLocation": "/bar/baz/foo", 104s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties/foo/const" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/bar/baz", 104s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/bar#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/$ref/properties/bar/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/extended#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties/foo/const", 104s # "error": "value does not match", 104s # "instanceLocation": "/bar/baz/foo", 104s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties/foo/const" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/bar/baz", 104s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/bar#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/$ref/properties/bar/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/extended#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 252 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "number list with number values" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 253 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "number list with string values" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/numberList#/$defs/itemType/type", 104s # "error": "got string, not number", 104s # "instanceLocation": "/list/0", 104s # "keywordLocation": "/then/$ref/$ref/properties/list/items/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/list", 104s # "keywordLocation": "/then/$ref/$ref/properties/list/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then/$ref/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/then", 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/numberList#/$defs/itemType/type", 104s # "error": "got string, not number", 104s # "instanceLocation": "/list/0", 104s # "keywordLocation": "/then/$ref/$ref/properties/list/items/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/list", 104s # "keywordLocation": "/then/$ref/$ref/properties/list/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then/$ref/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/then", 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 254 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "string list with number values" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/stringList#/$defs/itemType/type", 104s # "error": "got number, not string", 104s # "instanceLocation": "/list/0", 104s # "keywordLocation": "/else/$ref/$ref/properties/list/items/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/list", 104s # "keywordLocation": "/else/$ref/$ref/properties/list/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else/$ref/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/else", 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/stringList#/$defs/itemType/type", 104s # "error": "got number, not string", 104s # "instanceLocation": "/list/0", 104s # "keywordLocation": "/else/$ref/$ref/properties/list/items/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/list", 104s # "keywordLocation": "/else/$ref/$ref/properties/list/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else/$ref/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/else", 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 255 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "string list with string values" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 104s # "error": "got string, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then/$ref/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 104s # "error": "got string, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then/$ref/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 104s # "error": "got integer, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then/$ref/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 104s # "error": "got integer, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then/$ref/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 259 - dynamicRef.json: "strict-tree schema, guards against misspelled properties" - "instance with misspelled field" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/children/0/daat", 104s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "/children/0", 104s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties/children/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/children", 104s # "keywordLocation": "/$ref/properties/children/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/children", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/children/0/daat", 104s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "/children/0", 104s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties/children/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/children", 104s # "keywordLocation": "/$ref/properties/children/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/children", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 260 - dynamicRef.json: "strict-tree schema, guards against misspelled properties" - "instance with correct field" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 261 - dynamicRef.json: "tests for implementation dynamic anchor and reference link" - "incorrect parent schema" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 104s # "error": "object is missing property: elements", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/a", 104s # "keywordLocation": "/$ref/additionalProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 104s # "error": "object is missing property: elements", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 262 - dynamicRef.json: "tests for implementation dynamic anchor and reference link" - "incorrect extended schema" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/required", 104s # "error": "object is missing property: a", 104s # "instanceLocation": "/elements/0", 104s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/additionalProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/elements/0/b", 104s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/additionalProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/additionalProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "/elements/0", 104s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/additionalProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/elements", 104s # "keywordLocation": "/$ref/properties/elements/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/required", 104s # "error": "object is missing property: a", 104s # "instanceLocation": "/elements/0", 104s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/elements", 104s # "keywordLocation": "/$ref/properties/elements/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 263 - dynamicRef.json: "tests for implementation dynamic anchor and reference link" - "correct extended schema" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 264 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $defs first" - "incorrect parent schema" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 104s # "error": "object is missing property: elements", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/$ref/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/a", 104s # "keywordLocation": "/allOf/0/$ref/additionalProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/$ref/additionalProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 104s # "error": "object is missing property: elements", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/$ref/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 265 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $defs first" - "incorrect extended schema" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/required", 104s # "error": "object is missing property: a", 104s # "instanceLocation": "/elements/0", 104s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/additionalProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/elements/0/b", 104s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/additionalProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/additionalProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "/elements/0", 104s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/additionalProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/elements", 104s # "keywordLocation": "/allOf/0/$ref/properties/elements/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/required", 104s # "error": "object is missing property: a", 104s # "instanceLocation": "/elements/0", 104s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/elements", 104s # "keywordLocation": "/allOf/0/$ref/properties/elements/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 266 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $defs first" - "correct extended schema" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 267 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $ref first" - "incorrect parent schema" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 104s # "error": "object is missing property: elements", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/$ref/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/a", 104s # "keywordLocation": "/allOf/1/$ref/additionalProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/$ref/additionalProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 104s # "error": "object is missing property: elements", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/$ref/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 268 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $ref first" - "incorrect extended schema" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/required", 104s # "error": "object is missing property: a", 104s # "instanceLocation": "/elements/0", 104s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/additionalProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/elements/0/b", 104s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/additionalProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/additionalProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "/elements/0", 104s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/additionalProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/elements", 104s # "keywordLocation": "/allOf/1/$ref/properties/elements/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/required", 104s # "error": "object is missing property: a", 104s # "instanceLocation": "/elements/0", 104s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/elements", 104s # "keywordLocation": "/allOf/1/$ref/properties/elements/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 269 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $ref first" - "correct extended schema" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 270 - dynamicRef.json: "$ref to $dynamicRef finds detached $dynamicAnchor" - "number is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 271 - dynamicRef.json: "$ref to $dynamicRef finds detached $dynamicAnchor" - "non-number is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-dynamicref.json#/$defs/detached/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$dynamicRef/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-dynamicref.json#/$defs/detached/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$dynamicRef/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 272 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a true schema" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 273 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a false schema" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/false", 104s # "error": "subschema is false", 104s # "instanceLocation": "/false", 104s # "keywordLocation": "/properties/false/$dynamicRef" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/false", 104s # "error": "subschema is false", 104s # "instanceLocation": "/false", 104s # "keywordLocation": "/properties/false/$dynamicRef" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 274 - dynamicRef.json: "$dynamicRef skips over intermediate resources - direct reference" - "integer property passes" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 275 - dynamicRef.json: "$dynamicRef skips over intermediate resources - direct reference" - "string property fails" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/$defs/defaultContent/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/bar-item/content", 104s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/bar-item", 104s # "keywordLocation": "/properties/bar-item/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/main#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/$defs/defaultContent/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/bar-item/content", 104s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/bar-item", 104s # "keywordLocation": "/properties/bar-item/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/main#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 276 - enum.json: "simple enum validation" - "one of the enum is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 277 - enum.json: "simple enum validation" - "something else is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 278 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 279 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 280 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 104s # result: { 104s # "errors": [ 104s # { 104s # "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)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "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)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 281 - enum.json: "heterogeneous enum validation" - "valid object matches" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 282 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 283 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 284 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 285 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 286 - enum.json: "enums in properties" - "both properties are valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 287 - enum.json: "enums in properties" - "wrong foo value" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/enum" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/enum" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 288 - enum.json: "enums in properties" - "wrong bar value" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/enum" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/enum" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 289 - enum.json: "enums in properties" - "missing optional property is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 290 - enum.json: "enums in properties" - "missing required property is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 291 - enum.json: "enums in properties" - "missing all properties is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 292 - enum.json: "enum with escaped characters" - "member 1 is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 293 - enum.json: "enum with escaped characters" - "member 2 is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 294 - enum.json: "enum with escaped characters" - "another string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 295 - enum.json: "enum with false does not match 0" - "false is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 296 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 297 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 298 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 299 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 300 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 301 - enum.json: "enum with true does not match 1" - "true is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 302 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 303 - enum.json: "enum with true does not match 1" - "float one is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 304 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 305 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 306 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 307 - enum.json: "enum with 0 does not match false" - "false is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 308 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 309 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 310 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 311 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 312 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 313 - enum.json: "enum with 1 does not match true" - "true is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 314 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 315 - enum.json: "enum with 1 does not match true" - "float one is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 316 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 317 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 318 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 319 - enum.json: "nul characters in strings" - "match string with nul" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 320 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 321 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 322 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is greater than or equal to 3", 104s # "instanceLocation": "", 104s # "keywordLocation": "/exclusiveMaximum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is greater than or equal to 3", 104s # "instanceLocation": "", 104s # "keywordLocation": "/exclusiveMaximum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 323 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is greater than or equal to 3", 104s # "instanceLocation": "", 104s # "keywordLocation": "/exclusiveMaximum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is greater than or equal to 3", 104s # "instanceLocation": "", 104s # "keywordLocation": "/exclusiveMaximum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 324 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 325 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 326 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than or equal to 1.1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/exclusiveMinimum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than or equal to 1.1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/exclusiveMinimum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 327 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than or equal to 1.1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/exclusiveMinimum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than or equal to 1.1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/exclusiveMinimum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 328 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 329 - format.json: "email format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 330 - format.json: "email format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 331 - format.json: "email format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 332 - format.json: "email format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 333 - format.json: "email format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 334 - format.json: "email format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 335 - format.json: "email format" - "invalid email string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 336 - format.json: "idn-email format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 337 - format.json: "idn-email format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 338 - format.json: "idn-email format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 339 - format.json: "idn-email format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 340 - format.json: "idn-email format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 341 - format.json: "idn-email format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 342 - format.json: "idn-email format" - "invalid idn-email string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 343 - format.json: "regex format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 344 - format.json: "regex format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 345 - format.json: "regex format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 346 - format.json: "regex format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 347 - format.json: "regex format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 348 - format.json: "regex format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 349 - format.json: "regex format" - "invalid regex string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 350 - format.json: "ipv4 format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 351 - format.json: "ipv4 format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 352 - format.json: "ipv4 format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 353 - format.json: "ipv4 format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 354 - format.json: "ipv4 format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 355 - format.json: "ipv4 format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 356 - format.json: "ipv4 format" - "invalid ipv4 string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 357 - format.json: "ipv6 format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 358 - format.json: "ipv6 format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 359 - format.json: "ipv6 format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 360 - format.json: "ipv6 format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 361 - format.json: "ipv6 format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 362 - format.json: "ipv6 format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 363 - format.json: "ipv6 format" - "invalid ipv6 string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 364 - format.json: "idn-hostname format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 365 - format.json: "idn-hostname format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 366 - format.json: "idn-hostname format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 367 - format.json: "idn-hostname format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 368 - format.json: "idn-hostname format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 369 - format.json: "idn-hostname format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 370 - format.json: "idn-hostname format" - "invalid idn-hostname string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 371 - format.json: "hostname format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 372 - format.json: "hostname format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 373 - format.json: "hostname format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 374 - format.json: "hostname format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 375 - format.json: "hostname format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 376 - format.json: "hostname format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 377 - format.json: "hostname format" - "invalid hostname string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 378 - format.json: "date format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 379 - format.json: "date format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 380 - format.json: "date format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 381 - format.json: "date format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 382 - format.json: "date format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 383 - format.json: "date format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 384 - format.json: "date format" - "invalid date string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 385 - format.json: "date-time format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 386 - format.json: "date-time format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 387 - format.json: "date-time format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 388 - format.json: "date-time format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 389 - format.json: "date-time format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 390 - format.json: "date-time format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 391 - format.json: "date-time format" - "invalid date-time string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 392 - format.json: "time format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 393 - format.json: "time format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 394 - format.json: "time format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 395 - format.json: "time format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 396 - format.json: "time format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 397 - format.json: "time format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 398 - format.json: "time format" - "invalid time string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 399 - format.json: "json-pointer format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 400 - format.json: "json-pointer format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 401 - format.json: "json-pointer format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 402 - format.json: "json-pointer format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 403 - format.json: "json-pointer format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 404 - format.json: "json-pointer format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 405 - format.json: "json-pointer format" - "invalid json-pointer string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 406 - format.json: "relative-json-pointer format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 407 - format.json: "relative-json-pointer format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 408 - format.json: "relative-json-pointer format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 409 - format.json: "relative-json-pointer format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 410 - format.json: "relative-json-pointer format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 411 - format.json: "relative-json-pointer format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 412 - format.json: "relative-json-pointer format" - "invalid relative-json-pointer string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 413 - format.json: "iri format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 414 - format.json: "iri format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 415 - format.json: "iri format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 416 - format.json: "iri format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 417 - format.json: "iri format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 418 - format.json: "iri format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 419 - format.json: "iri format" - "invalid iri string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 420 - format.json: "iri-reference format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 421 - format.json: "iri-reference format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 422 - format.json: "iri-reference format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 423 - format.json: "iri-reference format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 424 - format.json: "iri-reference format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 425 - format.json: "iri-reference format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 426 - format.json: "iri-reference format" - "invalid iri-reference string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 427 - format.json: "uri format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 428 - format.json: "uri format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 429 - format.json: "uri format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 430 - format.json: "uri format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 431 - format.json: "uri format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 432 - format.json: "uri format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 433 - format.json: "uri format" - "invalid uri string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 434 - format.json: "uri-reference format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 435 - format.json: "uri-reference format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 436 - format.json: "uri-reference format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 437 - format.json: "uri-reference format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 438 - format.json: "uri-reference format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 439 - format.json: "uri-reference format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 440 - format.json: "uri-reference format" - "invalid uri-reference string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 441 - format.json: "uri-template format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 442 - format.json: "uri-template format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 443 - format.json: "uri-template format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 444 - format.json: "uri-template format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 445 - format.json: "uri-template format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 446 - format.json: "uri-template format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 447 - format.json: "uri-template format" - "invalid uri-template string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 448 - format.json: "uuid format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 449 - format.json: "uuid format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 450 - format.json: "uuid format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 451 - format.json: "uuid format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 452 - format.json: "uuid format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 453 - format.json: "uuid format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 454 - format.json: "uuid format" - "invalid uuid string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 455 - format.json: "duration format" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 456 - format.json: "duration format" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 457 - format.json: "duration format" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 458 - format.json: "duration format" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 459 - format.json: "duration format" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 460 - format.json: "duration format" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 461 - format.json: "duration format" - "invalid duration string is only an annotation by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 462 - if-then-else.json: "ignore if without then or else" - "valid when valid against lone if" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 463 - if-then-else.json: "ignore if without then or else" - "valid when invalid against lone if" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 464 - if-then-else.json: "ignore then without if" - "valid when valid against lone then" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 465 - if-then-else.json: "ignore then without if" - "valid when invalid against lone then" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 466 - if-then-else.json: "ignore else without if" - "valid when valid against lone else" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 467 - if-then-else.json: "ignore else without if" - "valid when invalid against lone else" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 468 - if-then-else.json: "if and then without else" - "valid through then" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 469 - if-then-else.json: "if and then without else" - "invalid through then" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than -10", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then/minimum" 104s # }, 104s # { 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than -10", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then/minimum" 104s # }, 104s # { 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 470 - if-then-else.json: "if and then without else" - "valid when if test fails" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 471 - if-then-else.json: "if and else without then" - "valid when if test passes" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 472 - if-then-else.json: "if and else without then" - "valid through else" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 473 - if-then-else.json: "if and else without then" - "invalid through else" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else/multipleOf" 104s # }, 104s # { 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else/multipleOf" 104s # }, 104s # { 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 474 - if-then-else.json: "validate against correct branch, then vs else" - "valid through then" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 475 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through then" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than -10", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then/minimum" 104s # }, 104s # { 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than -10", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then/minimum" 104s # }, 104s # { 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 476 - if-then-else.json: "validate against correct branch, then vs else" - "valid through else" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 477 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through else" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else/multipleOf" 104s # }, 104s # { 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else/multipleOf" 104s # }, 104s # { 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 478 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through then" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 479 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through else" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 480 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (valid)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 481 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (invalid)" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then/const" 104s # }, 104s # { 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then/const" 104s # }, 104s # { 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 482 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (invalid)" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else/const" 104s # }, 104s # { 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else/const" 104s # }, 104s # { 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 483 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (valid)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 484 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "yes redirects to then and passes" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 485 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "other redirects to else and passes" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 486 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "no redirects to then and fails" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then/const" 104s # }, 104s # { 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then/const" 104s # }, 104s # { 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/then" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 487 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "invalid redirects to else and fails" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else/const" 104s # }, 104s # { 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else/const" 104s # }, 104s # { 104s # "error": "subschema is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/else" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s 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" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/int/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/int/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/additionalProperties" 104s # }, 104s # { 104s # "error": "subschemas 0, 1 are not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/int/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/properties" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 490 - items.json: "a schema given for items" - "valid items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 491 - items.json: "a schema given for items" - "wrong type of items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 492 - items.json: "a schema given for items" - "ignores non-arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 493 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 494 - items.json: "items with boolean schema (true)" - "any array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 495 - items.json: "items with boolean schema (true)" - "empty array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 496 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/items" 104s # }, 104s # { 104s # "error": "item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items" 104s # }, 104s # { 104s # "error": "item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 497 - items.json: "items with boolean schema (false)" - "empty array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 498 - items.json: "items and subitems" - "valid items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 499 - items.json: "items and subitems" - "too many items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 500 - items.json: "items and subitems" - "too many sub-items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/item/items", 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0/2", 104s # "keywordLocation": "/prefixItems/0/$ref/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/item/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/prefixItems/0/$ref/items" 104s # }, 104s # { 104s # "error": "not all items are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/prefixItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/item/items", 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0/2", 104s # "keywordLocation": "/prefixItems/0/$ref/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/item/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/prefixItems/0/$ref/items" 104s # }, 104s # { 104s # "error": "not all items are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/prefixItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 501 - items.json: "items and subitems" - "wrong item" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/item/type", 104s # "error": "got object, not array", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/prefixItems/0/$ref/type" 104s # }, 104s # { 104s # "error": "not all items are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/prefixItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/item/type", 104s # "error": "got object, not array", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/prefixItems/0/$ref/type" 104s # }, 104s # { 104s # "error": "not all items are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/prefixItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 502 - items.json: "items and subitems" - "wrong sub-item" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "/0/0", 104s # "keywordLocation": "/prefixItems/0/$ref/prefixItems/0/$ref/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/item/prefixItems", 104s # "error": "not all items are valid", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/prefixItems/0/$ref/prefixItems" 104s # }, 104s # { 104s # "error": "not all items are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/prefixItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "/0/0", 104s # "keywordLocation": "/prefixItems/0/$ref/prefixItems/0/$ref/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/item/prefixItems", 104s # "error": "not all items are valid", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/prefixItems/0/$ref/prefixItems" 104s # }, 104s # { 104s # "error": "not all items are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/prefixItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 503 - items.json: "items and subitems" - "fewer items is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 504 - items.json: "nested items" - "valid nested array" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 505 - items.json: "nested items" - "nested array with invalid type" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/0/0/0/0", 104s # "keywordLocation": "/items/items/items/items/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/0/0/0", 104s # "keywordLocation": "/items/items/items/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/0/0", 104s # "keywordLocation": "/items/items/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/items/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/0/0/0/0", 104s # "keywordLocation": "/items/items/items/items/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/0/0/0", 104s # "keywordLocation": "/items/items/items/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/0/0", 104s # "keywordLocation": "/items/items/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/items/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 506 - items.json: "nested items" - "not deep enough" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not array", 104s # "instanceLocation": "/0/0/0", 104s # "keywordLocation": "/items/items/items/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/0/0", 104s # "keywordLocation": "/items/items/items" 104s # }, 104s # { 104s # "error": "got integer, not array", 104s # "instanceLocation": "/0/1/0", 104s # "keywordLocation": "/items/items/items/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/0/1", 104s # "keywordLocation": "/items/items/items" 104s # }, 104s # { 104s # "error": "got integer, not array", 104s # "instanceLocation": "/0/2/0", 104s # "keywordLocation": "/items/items/items/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/0/2", 104s # "keywordLocation": "/items/items/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/items/items" 104s # }, 104s # { 104s # "error": "got integer, not array", 104s # "instanceLocation": "/1/0/0", 104s # "keywordLocation": "/items/items/items/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/1/0", 104s # "keywordLocation": "/items/items/items" 104s # }, 104s # { 104s # "error": "got integer, not array", 104s # "instanceLocation": "/1/1/0", 104s # "keywordLocation": "/items/items/items/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/1/1", 104s # "keywordLocation": "/items/items/items" 104s # }, 104s # { 104s # "error": "got integer, not array", 104s # "instanceLocation": "/1/2/0", 104s # "keywordLocation": "/items/items/items/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/1/2", 104s # "keywordLocation": "/items/items/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not array", 104s # "instanceLocation": "/0/0/0", 104s # "keywordLocation": "/items/items/items/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/0/0", 104s # "keywordLocation": "/items/items/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/items/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 507 - items.json: "prefixItems with no additional items allowed" - "empty array" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 508 - items.json: "prefixItems with no additional items allowed" - "fewer number of items present (1)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 509 - items.json: "prefixItems with no additional items allowed" - "fewer number of items present (2)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 510 - items.json: "prefixItems with no additional items allowed" - "equal number of items present" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 511 - items.json: "prefixItems with no additional items allowed" - "additional items are not permitted" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 512 - items.json: "items does not look in applicators, valid case" - "prefixItems in allOf does not constrain items, invalid case" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than 5", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/items/minimum" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than 5", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/items/minimum" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 513 - items.json: "items does not look in applicators, valid case" - "prefixItems in allOf does not constrain items, valid case" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 514 - items.json: "prefixItems validation adjusts the starting index for items" - "valid items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 515 - items.json: "prefixItems validation adjusts the starting index for items" - "wrong type of second item" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 516 - items.json: "items with heterogeneous array" - "heterogeneous invalid instance" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 517 - items.json: "items with heterogeneous array" - "valid instance" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 518 - items.json: "items with null instance elements" - "allows null elements" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 519 - maxContains.json: "maxContains without contains is ignored" - "one item valid against lone maxContains" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 520 - maxContains.json: "maxContains without contains is ignored" - "two items still valid against lone maxContains" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 521 - maxContains.json: "maxContains with contains" - "empty data" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 522 - maxContains.json: "maxContains with contains" - "all elements match, valid maxContains" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 523 - maxContains.json: "maxContains with contains" - "all elements match, invalid maxContains" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array contains more than 1 matching item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array contains more than 1 matching item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 524 - maxContains.json: "maxContains with contains" - "some elements match, valid maxContains" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 525 - maxContains.json: "maxContains with contains" - "some elements match, invalid maxContains" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array contains more than 1 matching item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array contains more than 1 matching item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 526 - maxContains.json: "maxContains with contains, value with a decimal" - "one element matches, valid maxContains" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 527 - maxContains.json: "maxContains with contains, value with a decimal" - "too many elements match, invalid maxContains" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array contains more than 1 matching item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array contains more than 1 matching item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 528 - maxContains.json: "minContains < maxContains" - "actual < minContains < maxContains" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 529 - maxContains.json: "minContains < maxContains" - "minContains < actual < maxContains" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 530 - maxContains.json: "minContains < maxContains" - "minContains < maxContains < actual" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array contains more than 3 matching items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array contains more than 3 matching items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 531 - maxItems.json: "maxItems validation" - "shorter is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 532 - maxItems.json: "maxItems validation" - "exact length is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 533 - maxItems.json: "maxItems validation" - "too long is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array has more than 2 items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maxItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array has more than 2 items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maxItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 534 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 535 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 536 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array has more than 2 items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maxItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array has more than 2 items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maxItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 537 - maxLength.json: "maxLength validation" - "shorter is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 538 - maxLength.json: "maxLength validation" - "exact length is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 539 - maxLength.json: "maxLength validation" - "too long is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "length is greater than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maxLength" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "length is greater than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maxLength" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 540 - maxLength.json: "maxLength validation" - "ignores non-strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 541 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 542 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 543 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "length is greater than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maxLength" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "length is greater than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maxLength" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 544 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 545 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 546 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object has more than 2 properties", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maxProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object has more than 2 properties", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maxProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 547 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 548 - maxProperties.json: "maxProperties validation" - "ignores strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 549 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 550 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 551 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object has more than 2 properties", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maxProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object has more than 2 properties", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maxProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 552 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 553 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object has more than 0 property", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maxProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object has more than 0 property", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maxProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 554 - maximum.json: "maximum validation" - "below the maximum is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 555 - maximum.json: "maximum validation" - "boundary point is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 556 - maximum.json: "maximum validation" - "above the maximum is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is greater than 3", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maximum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is greater than 3", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maximum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 557 - maximum.json: "maximum validation" - "ignores non-numbers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 558 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 559 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 560 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 561 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is greater than 300", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maximum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is greater than 300", 104s # "instanceLocation": "", 104s # "keywordLocation": "/maximum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 562 - minContains.json: "minContains without contains is ignored" - "one item valid against lone minContains" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 563 - minContains.json: "minContains without contains is ignored" - "zero items still valid against lone minContains" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 564 - minContains.json: "minContains=1 with contains" - "empty data" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 565 - minContains.json: "minContains=1 with contains" - "no elements match" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/contains/const" 104s # }, 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/contains/const" 104s # }, 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 566 - minContains.json: "minContains=1 with contains" - "single element matches, valid minContains" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 567 - minContains.json: "minContains=1 with contains" - "some elements match, valid minContains" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 568 - minContains.json: "minContains=1 with contains" - "all elements match, valid minContains" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 569 - minContains.json: "minContains=2 with contains" - "empty data" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 570 - minContains.json: "minContains=2 with contains" - "all elements match, invalid minContains" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array contains fewer than 2 matching items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array contains fewer than 2 matching items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 571 - minContains.json: "minContains=2 with contains" - "some elements match, invalid minContains" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array contains fewer than 2 matching items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array contains fewer than 2 matching items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 572 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (exactly as needed)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 573 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (more than needed)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 574 - minContains.json: "minContains=2 with contains" - "some elements match, valid minContains" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 575 - minContains.json: "minContains=2 with contains with a decimal value" - "one element matches, invalid minContains" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array contains fewer than 2 matching items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array contains fewer than 2 matching items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 576 - minContains.json: "minContains=2 with contains with a decimal value" - "both elements match, valid minContains" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 577 - minContains.json: "maxContains = minContains" - "empty data" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 578 - minContains.json: "maxContains = minContains" - "all elements match, invalid minContains" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array contains fewer than 2 matching items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array contains fewer than 2 matching items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 579 - minContains.json: "maxContains = minContains" - "all elements match, invalid maxContains" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array contains more than 2 matching items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array contains more than 2 matching items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 580 - minContains.json: "maxContains = minContains" - "all elements match, valid maxContains and minContains" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 581 - minContains.json: "maxContains < minContains" - "empty data" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 582 - minContains.json: "maxContains < minContains" - "invalid minContains" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array contains fewer than 3 matching items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array contains fewer than 3 matching items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 583 - minContains.json: "maxContains < minContains" - "invalid maxContains" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array contains more than 1 matching item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array contains more than 1 matching item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 584 - minContains.json: "maxContains < minContains" - "invalid maxContains and minContains" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array contains more than 1 matching item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # }, 104s # { 104s # "error": "array contains fewer than 3 matching items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array contains more than 1 matching item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # }, 104s # { 104s # "error": "array contains fewer than 3 matching items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 585 - minContains.json: "minContains = 0" - "empty data" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 586 - minContains.json: "minContains = 0" - "minContains = 0 makes contains always pass" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 587 - minContains.json: "minContains = 0 with maxContains" - "empty data" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 588 - minContains.json: "minContains = 0 with maxContains" - "not more than maxContains" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 589 - minContains.json: "minContains = 0 with maxContains" - "too many" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array contains more than 1 matching item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array contains more than 1 matching item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 590 - minItems.json: "minItems validation" - "longer is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 591 - minItems.json: "minItems validation" - "exact length is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 592 - minItems.json: "minItems validation" - "too short is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array has fewer than 1 item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array has fewer than 1 item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 593 - minItems.json: "minItems validation" - "ignores non-arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 594 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 595 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array has fewer than 1 item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array has fewer than 1 item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 596 - minLength.json: "minLength validation" - "longer is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 597 - minLength.json: "minLength validation" - "exact length is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 598 - minLength.json: "minLength validation" - "too short is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "length is less than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minLength" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "length is less than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minLength" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 599 - minLength.json: "minLength validation" - "ignores non-strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 600 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "length is less than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minLength" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "length is less than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minLength" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 601 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 602 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "length is less than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minLength" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "length is less than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minLength" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 603 - minProperties.json: "minProperties validation" - "longer is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 604 - minProperties.json: "minProperties validation" - "exact length is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 605 - minProperties.json: "minProperties validation" - "too short is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object has fewer than 1 property", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object has fewer than 1 property", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 606 - minProperties.json: "minProperties validation" - "ignores arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 607 - minProperties.json: "minProperties validation" - "ignores strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 608 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 609 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 610 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object has fewer than 1 property", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object has fewer than 1 property", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 611 - minimum.json: "minimum validation" - "above the minimum is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 612 - minimum.json: "minimum validation" - "boundary point is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 613 - minimum.json: "minimum validation" - "below the minimum is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than 1.1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minimum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than 1.1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minimum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 614 - minimum.json: "minimum validation" - "ignores non-numbers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 615 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 616 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 617 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 618 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 619 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than -2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minimum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than -2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minimum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 620 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than -2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minimum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than -2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minimum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 621 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 622 - multipleOf.json: "by int" - "int by int" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 623 - multipleOf.json: "by int" - "int by int fail" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/multipleOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/multipleOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 624 - multipleOf.json: "by int" - "ignores non-numbers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 625 - multipleOf.json: "by number" - "zero is multiple of anything" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 626 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 627 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 1.5", 104s # "instanceLocation": "", 104s # "keywordLocation": "/multipleOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 1.5", 104s # "instanceLocation": "", 104s # "keywordLocation": "/multipleOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 628 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 629 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 0.0001", 104s # "instanceLocation": "", 104s # "keywordLocation": "/multipleOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 0.0001", 104s # "instanceLocation": "", 104s # "keywordLocation": "/multipleOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 630 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 0.123456789", 104s # "instanceLocation": "", 104s # "keywordLocation": "/multipleOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 0.123456789", 104s # "instanceLocation": "", 104s # "keywordLocation": "/multipleOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 631 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 632 - not.json: "not" - "allowed" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 633 - not.json: "not" - "disallowed" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 634 - not.json: "not multiple types" - "valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 635 - not.json: "not multiple types" - "mismatch" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 636 - not.json: "not multiple types" - "other mismatch" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 637 - not.json: "not more complex schema" - "match" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 638 - not.json: "not more complex schema" - "other match" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 639 - not.json: "not more complex schema" - "mismatch" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 640 - not.json: "forbidden property" - "property present" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/not" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/not" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 641 - not.json: "forbidden property" - "property absent" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 642 - not.json: "forbid everything with empty schema" - "number is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 643 - not.json: "forbid everything with empty schema" - "string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 644 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 645 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 646 - not.json: "forbid everything with empty schema" - "null is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 647 - not.json: "forbid everything with empty schema" - "object is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 648 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 649 - not.json: "forbid everything with empty schema" - "array is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 650 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 651 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 652 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 653 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 654 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 655 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 656 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 657 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 658 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 659 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is true", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 660 - not.json: "allow everything with boolean schema false" - "number is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 661 - not.json: "allow everything with boolean schema false" - "string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 662 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 663 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 664 - not.json: "allow everything with boolean schema false" - "null is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 665 - not.json: "allow everything with boolean schema false" - "object is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 666 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 667 - not.json: "allow everything with boolean schema false" - "array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 668 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 669 - not.json: "double negation" - "any value is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 670 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 671 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/not" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 672 - oneOf.json: "oneOf" - "first oneOf valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 673 - oneOf.json: "oneOf" - "second oneOf valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 674 - oneOf.json: "oneOf" - "both oneOf valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 675 - oneOf.json: "oneOf" - "neither oneOf valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/type" 104s # }, 104s # { 104s # "error": "value is less than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/minimum" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/type" 104s # }, 104s # { 104s # "error": "value is less than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/minimum" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 676 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # }, 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 677 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 678 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 679 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1, 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 680 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 681 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 682 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0" 104s # }, 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1" 104s # }, 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/2" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0" 104s # }, 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1" 104s # }, 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/2" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 683 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 684 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 685 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 686 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/oneOf/0/properties/bar/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/properties" 104s # }, 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/oneOf/1/properties/foo/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/properties" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/oneOf/0/properties/bar/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/properties" 104s # }, 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/oneOf/1/properties/foo/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/properties" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 687 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 688 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 689 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/required" 104s # }, 104s # { 104s # "error": "object is missing properties: foo, baz", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/required" 104s # }, 104s # { 104s # "error": "object is missing properties: foo, baz", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 690 - oneOf.json: "oneOf with required" - "first valid - valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 691 - oneOf.json: "oneOf with required" - "second valid - valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 692 - oneOf.json: "oneOf with required" - "both valid - invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 693 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 694 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 695 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 696 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/required" 104s # }, 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: bar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/required" 104s # }, 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 697 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 698 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/oneOf/0/type" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/oneOf" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/oneOf/0/type" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/oneOf" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 699 - pattern.json: "pattern validation" - "a matching pattern is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 700 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 701 - pattern.json: "pattern validation" - "ignores booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 702 - pattern.json: "pattern validation" - "ignores integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 703 - pattern.json: "pattern validation" - "ignores floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 704 - pattern.json: "pattern validation" - "ignores objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 705 - pattern.json: "pattern validation" - "ignores arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 706 - pattern.json: "pattern validation" - "ignores null" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 707 - pattern.json: "pattern is not anchored" - "matches a substring" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 708 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 709 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 710 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/patternProperties/f.*o/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/patternProperties/f.*o/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 711 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/patternProperties/f.*o/type" 104s # }, 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/foooooo", 104s # "keywordLocation": "/patternProperties/f.*o/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/patternProperties/f.*o/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 712 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 713 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 714 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 715 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 716 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 717 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 718 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/a", 104s # "keywordLocation": "/patternProperties/a*/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/a", 104s # "keywordLocation": "/patternProperties/a*/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 719 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is greater than 20", 104s # "instanceLocation": "/aaaa", 104s # "keywordLocation": "/patternProperties/aaa*/maximum" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is greater than 20", 104s # "instanceLocation": "/aaaa", 104s # "keywordLocation": "/patternProperties/aaa*/maximum" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 720 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/aaa", 104s # "keywordLocation": "/patternProperties/a*/type" 104s # }, 104s # { 104s # "error": "value is greater than 20", 104s # "instanceLocation": "/aaaa", 104s # "keywordLocation": "/patternProperties/aaa*/maximum" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/aaa", 104s # "keywordLocation": "/patternProperties/a*/type" 104s # }, 104s # { 104s # "error": "value is greater than 20", 104s # "instanceLocation": "/aaaa", 104s # "keywordLocation": "/patternProperties/aaa*/maximum" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 721 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 722 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not boolean", 104s # "instanceLocation": "/a31b", 104s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not boolean", 104s # "instanceLocation": "/a31b", 104s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 723 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 724 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/a_X_3", 104s # "keywordLocation": "/patternProperties/X_/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/a_X_3", 104s # "keywordLocation": "/patternProperties/X_/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 725 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 726 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/patternProperties/b.*" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/patternProperties/b.*" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 727 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/patternProperties/b.*" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/patternProperties/b.*" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 728 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "property not permitted", 104s # "instanceLocation": "/foobar", 104s # "keywordLocation": "/patternProperties/b.*" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "property not permitted", 104s # "instanceLocation": "/foobar", 104s # "keywordLocation": "/patternProperties/b.*" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 729 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 730 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 731 - prefixItems.json: "a schema given for prefixItems" - "correct types" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 732 - prefixItems.json: "a schema given for prefixItems" - "wrong types" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/prefixItems/0/type" 104s # }, 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/prefixItems/1/type" 104s # }, 104s # { 104s # "error": "not all items are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/prefixItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/prefixItems/0/type" 104s # }, 104s # { 104s # "error": "not all items are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/prefixItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 733 - prefixItems.json: "a schema given for prefixItems" - "incomplete array of items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 734 - prefixItems.json: "a schema given for prefixItems" - "array with additional items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 735 - prefixItems.json: "a schema given for prefixItems" - "empty array" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 736 - prefixItems.json: "a schema given for prefixItems" - "JavaScript pseudo-array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 737 - prefixItems.json: "prefixItems with boolean schemas" - "array with one item is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 738 - prefixItems.json: "prefixItems with boolean schemas" - "array with two items is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/prefixItems/1" 104s # }, 104s # { 104s # "error": "not all items are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/prefixItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/prefixItems/1" 104s # }, 104s # { 104s # "error": "not all items are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/prefixItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 739 - prefixItems.json: "prefixItems with boolean schemas" - "empty array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 740 - prefixItems.json: "additional items are allowed by default" - "only the first item is validated" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 741 - prefixItems.json: "prefixItems with null instance elements" - "allows null elements" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 742 - properties.json: "object properties validation" - "both properties present and valid is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 743 - properties.json: "object properties validation" - "one property invalid is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not string", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not string", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 744 - properties.json: "object properties validation" - "both properties invalid is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not string", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/type" 104s # }, 104s # { 104s # "error": "got array, not integer", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not string", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 745 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 746 - properties.json: "object properties validation" - "ignores arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 747 - properties.json: "object properties validation" - "ignores other non-objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 748 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 749 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array has more than 3 items", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/maxItems" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array has more than 3 items", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/maxItems" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 750 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array has fewer than 2 items", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/patternProperties/f.o/minItems" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array has fewer than 2 items", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/patternProperties/f.o/minItems" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 751 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 752 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array has fewer than 2 items", 104s # "instanceLocation": "/fxo", 104s # "keywordLocation": "/patternProperties/f.o/minItems" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array has fewer than 2 items", 104s # "instanceLocation": "/fxo", 104s # "keywordLocation": "/patternProperties/f.o/minItems" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 753 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 754 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 755 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/quux", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/quux", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 756 - properties.json: "properties with boolean schema" - "no property present is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 757 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 758 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 759 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 760 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 761 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/foo\tbar", 104s # "keywordLocation": "/properties/foo\tbar/type" 104s # }, 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/foo\nbar", 104s # "keywordLocation": "/properties/foo\nbar/type" 104s # }, 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/foo\fbar", 104s # "keywordLocation": "/properties/foo\fbar/type" 104s # }, 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/foo\rbar", 104s # "keywordLocation": "/properties/foo\rbar/type" 104s # }, 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/foo\"bar", 104s # "keywordLocation": "/properties/foo\"bar/type" 104s # }, 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/foo\\bar", 104s # "keywordLocation": "/properties/foo\\bar/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/foo\tbar", 104s # "keywordLocation": "/properties/foo\tbar/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 762 - properties.json: "properties with null valued instance properties" - "allows null values" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 763 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 764 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 765 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 766 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/__proto__", 104s # "keywordLocation": "/properties/__proto__/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/__proto__", 104s # "keywordLocation": "/properties/__proto__/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 767 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/toString/length", 104s # "keywordLocation": "/properties/toString/properties/length/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/toString", 104s # "keywordLocation": "/properties/toString/properties" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/toString/length", 104s # "keywordLocation": "/properties/toString/properties/length/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/toString", 104s # "keywordLocation": "/properties/toString/properties" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 768 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not number", 104s # "instanceLocation": "/constructor", 104s # "keywordLocation": "/properties/constructor/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not number", 104s # "instanceLocation": "/constructor", 104s # "keywordLocation": "/properties/constructor/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 769 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 770 - propertyNames.json: "propertyNames validation" - "all property names valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 771 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "length is greater than 3", 104s # "instanceLocation": "/foobar", 104s # "keywordLocation": "/propertyNames/maxLength" 104s # }, 104s # { 104s # "error": "not all property names are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/propertyNames" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "length is greater than 3", 104s # "instanceLocation": "/foobar", 104s # "keywordLocation": "/propertyNames/maxLength" 104s # }, 104s # { 104s # "error": "not all property names are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/propertyNames" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 772 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 773 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 774 - propertyNames.json: "propertyNames validation" - "ignores strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 775 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 776 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 777 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "/aaA", 104s # "keywordLocation": "/propertyNames/pattern" 104s # }, 104s # { 104s # "error": "not all property names are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/propertyNames" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "/aaA", 104s # "keywordLocation": "/propertyNames/pattern" 104s # }, 104s # { 104s # "error": "not all property names are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/propertyNames" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 778 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 779 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 780 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 781 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/propertyNames" 104s # }, 104s # { 104s # "error": "not all property names are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/propertyNames" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "subschema is false", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/propertyNames" 104s # }, 104s # { 104s # "error": "not all property names are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/propertyNames" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 782 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 783 - propertyNames.json: "propertyNames with const" - "object with property foo is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 784 - propertyNames.json: "propertyNames with const" - "object with any other property is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/propertyNames/const" 104s # }, 104s # { 104s # "error": "not all property names are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/propertyNames" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/propertyNames/const" 104s # }, 104s # { 104s # "error": "not all property names are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/propertyNames" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 785 - propertyNames.json: "propertyNames with const" - "empty object is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 786 - propertyNames.json: "propertyNames with enum" - "object with property foo is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 787 - propertyNames.json: "propertyNames with enum" - "object with property foo and bar is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 788 - propertyNames.json: "propertyNames with enum" - "object with any other property is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/propertyNames/enum" 104s # }, 104s # { 104s # "error": "not all property names are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/propertyNames" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/propertyNames/enum" 104s # }, 104s # { 104s # "error": "not all property names are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/propertyNames" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 789 - propertyNames.json: "propertyNames with enum" - "empty object is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 790 - ref.json: "root pointer ref" - "match" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 791 - ref.json: "root pointer ref" - "recursive match" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 792 - ref.json: "root pointer ref" - "mismatch" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 793 - ref.json: "root pointer ref" - "recursive mismatch" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/additionalProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo/bar", 104s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/additionalProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/additionalProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo/bar", 104s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/additionalProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 794 - ref.json: "relative pointer ref to object" - "match" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 795 - ref.json: "relative pointer ref to object" - "mismatch" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/properties/foo/type", 104s # "error": "got boolean, not integer", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/properties/foo/type", 104s # "error": "got boolean, not integer", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 796 - ref.json: "relative pointer ref to array" - "match array" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 797 - ref.json: "relative pointer ref to array" - "mismatch array" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/prefixItems/0/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/prefixItems/1/$ref/type" 104s # }, 104s # { 104s # "error": "not all items are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/prefixItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/prefixItems/0/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/prefixItems/1/$ref/type" 104s # }, 104s # { 104s # "error": "not all items are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/prefixItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 798 - ref.json: "escaped pointer ref" - "slash invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/slash", 104s # "keywordLocation": "/properties/slash/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/slash", 104s # "keywordLocation": "/properties/slash/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 799 - ref.json: "escaped pointer ref" - "tilde invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/tilde", 104s # "keywordLocation": "/properties/tilde/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/tilde", 104s # "keywordLocation": "/properties/tilde/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 800 - ref.json: "escaped pointer ref" - "percent invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/percent", 104s # "keywordLocation": "/properties/percent/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/percent", 104s # "keywordLocation": "/properties/percent/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 801 - ref.json: "escaped pointer ref" - "slash valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 802 - ref.json: "escaped pointer ref" - "tilde valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 803 - ref.json: "escaped pointer ref" - "percent valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 804 - ref.json: "nested refs" - "nested ref valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 805 - ref.json: "nested refs" - "nested ref invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/a/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/a/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 806 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 807 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "array has more than 2 items", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/maxItems" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "array has more than 2 items", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/maxItems" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 808 - ref.json: "ref applies alongside sibling keywords" - "ref invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/reffed/type", 104s # "error": "got string, not array", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/reffed/type", 104s # "error": "got string, not array", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 809 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 810 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/nonNegativeInteger/minimum", 104s # "error": "value is less than 0", 104s # "instanceLocation": "/minLength", 104s # "keywordLocation": "/$ref/allOf/3/$ref/properties/minLength/$ref/$ref/minimum" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/allOf/3/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 104s # "error": "subschema 3 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/nonNegativeInteger/minimum", 104s # "error": "value is less than 0", 104s # "instanceLocation": "/minLength", 104s # "keywordLocation": "/$ref/allOf/3/$ref/properties/minLength/$ref/$ref/minimum" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/allOf/3/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 104s # "error": "subschema 3 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 811 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 812 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/$ref", 104s # "keywordLocation": "/properties/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/$ref", 104s # "keywordLocation": "/properties/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 813 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 814 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/is-string/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/$ref", 104s # "keywordLocation": "/properties/$ref/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/is-string/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/$ref", 104s # "keywordLocation": "/properties/$ref/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 815 - ref.json: "$ref to boolean schema true" - "any value is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 816 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/bool", 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/bool", 104s # "error": "subschema is false", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 817 - ref.json: "Recursive references between schemas" - "valid tree" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 818 - ref.json: "Recursive references between schemas" - "invalid tree" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties/value/type", 104s # "error": "got string, not number", 104s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 104s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/nodes/0/subtree/nodes/0", 104s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/nodes/0/subtree/nodes", 104s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/nodes/0/subtree", 104s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/nodes/0", 104s # "keywordLocation": "/properties/nodes/items/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/nodes", 104s # "keywordLocation": "/properties/nodes/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties/value/type", 104s # "error": "got string, not number", 104s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 104s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/nodes/0/subtree/nodes/0", 104s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/nodes/0/subtree/nodes", 104s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/nodes/0/subtree", 104s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/nodes/0", 104s # "keywordLocation": "/properties/nodes/items/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/nodes", 104s # "keywordLocation": "/properties/nodes/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 819 - ref.json: "refs with quote" - "object with numbers is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 820 - ref.json: "refs with quote" - "object with strings is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 104s # "error": "got string, not number", 104s # "instanceLocation": "/foo\"bar", 104s # "keywordLocation": "/properties/foo\"bar/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 104s # "error": "got string, not number", 104s # "instanceLocation": "/foo\"bar", 104s # "keywordLocation": "/properties/foo\"bar/$ref/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 821 - ref.json: "ref creates new scope when adjacent to keywords" - "referenced subschema doesn't see annotations from properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/prop1", 104s # "keywordLocation": "/$ref/unevaluatedProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/prop1", 104s # "keywordLocation": "/$ref/unevaluatedProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s 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" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/enum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 824 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 825 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo/bar", 104s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo/bar", 104s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 826 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/$ref/$ref/properties/bar/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/$ref/$ref/properties/bar/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 827 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 828 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo/bar", 104s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo/bar", 104s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 829 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/$ref/$ref/properties/bar/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/$ref/$ref/properties/bar/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 830 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 831 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 832 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 833 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 834 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id1/int.json#/maximum", 104s # "error": "value is greater than 10", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/maximum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id1/int.json#/maximum", 104s # "error": "value is greater than 10", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/maximum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 835 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 836 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id2/base.json#/$defs/bigint/maximum", 104s # "error": "value is greater than 10", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/maximum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id2/base.json#/$defs/bigint/maximum", 104s # "error": "value is greater than 10", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/maximum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 837 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 838 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 104s # "error": "value is less than 30", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/minimum" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 104s # "error": "value is less than 30", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/minimum" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 839 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 840 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 841 - ref.json: "URN base URI with NSS" - "a string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 842 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 843 - ref.json: "URN base URI with r-component" - "a string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 844 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 845 - ref.json: "URN base URI with q-component" - "a string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 846 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 847 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 848 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 849 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 850 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 851 - ref.json: "URN ref with nested pointer ref" - "a string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 852 - ref.json: "URN ref with nested pointer ref" - "a non-string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 853 - ref.json: "ref to if" - "a non-integer is invalid due to the $ref" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 854 - ref.json: "ref to if" - "an integer is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 855 - ref.json: "ref to then" - "a non-integer is invalid due to the $ref" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 856 - ref.json: "ref to then" - "an integer is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 857 - ref.json: "ref to else" - "a non-integer is invalid due to the $ref" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 858 - ref.json: "ref to else" - "an integer is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 859 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 860 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 861 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 862 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 863 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 864 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 865 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 866 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs//$defs//type", 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/$ref/type" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs//$defs//type", 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/$ref/type" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 867 - refRemote.json: "remote ref" - "remote ref valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 868 - refRemote.json: "remote ref" - "remote ref invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 869 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 870 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 871 - refRemote.json: "anchor within remote ref" - "remote anchor valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 872 - refRemote.json: "anchor within remote ref" - "remote anchor invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 873 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 874 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 875 - refRemote.json: "base URI change" - "base URI change ref valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 876 - refRemote.json: "base URI change" - "base URI change ref invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/folderInteger.json#/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/0/0", 104s # "keywordLocation": "/items/items/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/items/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/folderInteger.json#/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/0/0", 104s # "keywordLocation": "/items/items/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/items/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 877 - refRemote.json: "base URI change - change folder" - "number is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 878 - refRemote.json: "base URI change - change folder" - "string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/folderInteger.json#/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/list/0", 104s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/list", 104s # "keywordLocation": "/properties/list/$ref/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs1.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/folderInteger.json#/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/list/0", 104s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/#/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/list", 104s # "keywordLocation": "/properties/list/$ref/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs1.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 879 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 880 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/folderInteger.json#/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/list/0", 104s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/#/$defs/bar/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/list", 104s # "keywordLocation": "/properties/list/$ref/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs2.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/folderInteger.json#/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/list/0", 104s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/#/$defs/bar/items", 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "/list", 104s # "keywordLocation": "/properties/list/$ref/items" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs2.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 881 - refRemote.json: "root ref in remote ref" - "string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 882 - refRemote.json: "root ref in remote ref" - "null is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 883 - refRemote.json: "root ref in remote ref" - "object is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf/0/type", 104s # "error": "got object, not null", 104s # "instanceLocation": "/name", 104s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/type", 104s # "error": "got object, not string", 104s # "instanceLocation": "/name", 104s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf", 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "/name", 104s # "keywordLocation": "/properties/name/$ref/anyOf" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/object#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf/0/type", 104s # "error": "got object, not null", 104s # "instanceLocation": "/name", 104s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/type", 104s # "error": "got object, not string", 104s # "instanceLocation": "/name", 104s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf", 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "/name", 104s # "keywordLocation": "/properties/name/$ref/anyOf" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/object#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 884 - refRemote.json: "remote ref with ref to defs" - "invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/$ref/$ref/properties/bar/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/$ref/$ref/properties/bar/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 885 - refRemote.json: "remote ref with ref to defs" - "valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 886 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 887 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 888 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/name/foo", 104s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/foo-ref-string.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/name", 104s # "keywordLocation": "/properties/name/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/some-id#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "/name/foo", 104s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/foo-ref-string.json#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/name", 104s # "keywordLocation": "/properties/name/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/some-id#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 889 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 890 - refRemote.json: "remote HTTP ref with different $id" - "number is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 891 - refRemote.json: "remote HTTP ref with different $id" - "string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 892 - refRemote.json: "remote HTTP ref with different URN $id" - "number is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 893 - refRemote.json: "remote HTTP ref with different URN $id" - "string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 894 - refRemote.json: "remote HTTP ref with nested absolute ref" - "number is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 895 - refRemote.json: "remote HTTP ref with nested absolute ref" - "string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 896 - refRemote.json: "$ref to $ref finds detached $anchor" - "number is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 897 - refRemote.json: "$ref to $ref finds detached $anchor" - "non-number is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-ref.json#/$defs/detached/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-ref.json#/$defs/detached/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/$ref/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 898 - required.json: "required validation" - "present required property is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 899 - required.json: "required validation" - "non-present required property is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing property: foo", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 900 - required.json: "required validation" - "ignores arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 901 - required.json: "required validation" - "ignores strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 902 - required.json: "required validation" - "ignores other non-objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 903 - required.json: "required default validation" - "not required by default" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 904 - required.json: "required with empty array" - "property not required" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 905 - required.json: "required with escaped characters" - "object with all properties present is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 906 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 907 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 908 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 909 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing properties: __proto__, toString, constructor", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing properties: __proto__, toString, constructor", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 910 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing properties: toString, constructor", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing properties: toString, constructor", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 911 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing properties: __proto__, constructor", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing properties: __proto__, constructor", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 912 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing properties: __proto__, toString", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "object is missing properties: __proto__, toString", 104s # "instanceLocation": "", 104s # "keywordLocation": "/required" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 913 - required.json: "required properties whose names are Javascript object property names" - "all present" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 914 - type.json: "integer type matches integers" - "an integer is an integer" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 915 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 916 - type.json: "integer type matches integers" - "a float is not an integer" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 917 - type.json: "integer type matches integers" - "a string is not an integer" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 918 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 919 - type.json: "integer type matches integers" - "an object is not an integer" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 920 - type.json: "integer type matches integers" - "an array is not an integer" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got array, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got array, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 921 - type.json: "integer type matches integers" - "a boolean is not an integer" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got boolean, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got boolean, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 922 - type.json: "integer type matches integers" - "null is not an integer" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not integer", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 923 - type.json: "number type matches numbers" - "an integer is a number" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 924 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 925 - type.json: "number type matches numbers" - "a float is a number" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 926 - type.json: "number type matches numbers" - "a string is not a number" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 927 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 928 - type.json: "number type matches numbers" - "an object is not a number" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 929 - type.json: "number type matches numbers" - "an array is not a number" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got array, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got array, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 930 - type.json: "number type matches numbers" - "a boolean is not a number" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got boolean, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got boolean, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 931 - type.json: "number type matches numbers" - "null is not a number" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 932 - type.json: "string type matches strings" - "1 is not a string" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 933 - type.json: "string type matches strings" - "a float is not a string" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 934 - type.json: "string type matches strings" - "a string is a string" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 935 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 936 - type.json: "string type matches strings" - "an empty string is still a string" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 937 - type.json: "string type matches strings" - "an object is not a string" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 938 - type.json: "string type matches strings" - "an array is not a string" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got array, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got array, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 939 - type.json: "string type matches strings" - "a boolean is not a string" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got boolean, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got boolean, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 940 - type.json: "string type matches strings" - "null is not a string" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 941 - type.json: "object type matches objects" - "an integer is not an object" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 942 - type.json: "object type matches objects" - "a float is not an object" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 943 - type.json: "object type matches objects" - "a string is not an object" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 944 - type.json: "object type matches objects" - "an object is an object" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 945 - type.json: "object type matches objects" - "an array is not an object" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got array, not object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got array, not object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 946 - type.json: "object type matches objects" - "a boolean is not an object" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got boolean, not object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got boolean, not object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 947 - type.json: "object type matches objects" - "null is not an object" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 948 - type.json: "array type matches arrays" - "an integer is not an array" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not array", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not array", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 949 - type.json: "array type matches arrays" - "a float is not an array" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not array", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not array", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 950 - type.json: "array type matches arrays" - "a string is not an array" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not array", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not array", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 951 - type.json: "array type matches arrays" - "an object is not an array" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not array", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not array", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 952 - type.json: "array type matches arrays" - "an array is an array" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 953 - type.json: "array type matches arrays" - "a boolean is not an array" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got boolean, not array", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got boolean, not array", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 954 - type.json: "array type matches arrays" - "null is not an array" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not array", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not array", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 955 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not boolean", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not boolean", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 956 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not boolean", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not boolean", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 957 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not boolean", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not boolean", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 958 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not boolean", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not boolean", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 959 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not boolean", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not boolean", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 960 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not boolean", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not boolean", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 961 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got array, not boolean", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got array, not boolean", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 962 - type.json: "boolean type matches booleans" - "true is a boolean" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 963 - type.json: "boolean type matches booleans" - "false is a boolean" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 964 - type.json: "boolean type matches booleans" - "null is not a boolean" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not boolean", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not boolean", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 965 - type.json: "null type matches only the null object" - "an integer is not null" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 966 - type.json: "null type matches only the null object" - "a float is not null" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 967 - type.json: "null type matches only the null object" - "zero is not null" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 968 - type.json: "null type matches only the null object" - "a string is not null" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 969 - type.json: "null type matches only the null object" - "an empty string is not null" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 970 - type.json: "null type matches only the null object" - "an object is not null" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 971 - type.json: "null type matches only the null object" - "an array is not null" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got array, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got array, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 972 - type.json: "null type matches only the null object" - "true is not null" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got boolean, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got boolean, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 973 - type.json: "null type matches only the null object" - "false is not null" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got boolean, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got boolean, not null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 974 - type.json: "null type matches only the null object" - "null is null" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 975 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 976 - type.json: "multiple types can be specified in an array" - "a string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 977 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not one of integer, string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got number, not one of integer, string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 978 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not one of integer, string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got object, not one of integer, string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 979 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got array, not one of integer, string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got array, not one of integer, string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 980 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got boolean, not one of integer, string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got boolean, not one of integer, string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 981 - type.json: "multiple types can be specified in an array" - "null is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not one of integer, string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not one of integer, string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 982 - type.json: "type as array with one item" - "string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 983 - type.json: "type as array with one item" - "number is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 984 - type.json: "type: array or object" - "array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 985 - type.json: "type: array or object" - "object is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 986 - type.json: "type: array or object" - "number is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not one of array, object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not one of array, object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 987 - type.json: "type: array or object" - "string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not one of array, object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not one of array, object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 988 - type.json: "type: array or object" - "null is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not one of array, object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got null, not one of array, object", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 989 - type.json: "type: array, object or null" - "array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 990 - type.json: "type: array, object or null" - "object is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 991 - type.json: "type: array, object or null" - "null is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 992 - type.json: "type: array, object or null" - "number is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not one of array, object, null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not one of array, object, null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 993 - type.json: "type: array, object or null" - "string is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not one of array, object, null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not one of array, object, null", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 994 - unevaluatedItems.json: "unevaluatedItems true" - "with no unevaluated items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 995 - unevaluatedItems.json: "unevaluatedItems true" - "with unevaluated items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 996 - unevaluatedItems.json: "unevaluatedItems false" - "with no unevaluated items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 997 - unevaluatedItems.json: "unevaluatedItems false" - "with unevaluated items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 998 - unevaluatedItems.json: "unevaluatedItems as schema" - "with no unevaluated items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 999 - unevaluatedItems.json: "unevaluatedItems as schema" - "with valid unevaluated items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1000 - unevaluatedItems.json: "unevaluatedItems as schema" - "with invalid unevaluated items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1001 - unevaluatedItems.json: "unevaluatedItems with uniform items" - "unevaluatedItems doesn't apply" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1002 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with no unevaluated items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1003 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with unevaluated items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1004 - unevaluatedItems.json: "unevaluatedItems with items and prefixItems" - "unevaluatedItems doesn't apply" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1005 - unevaluatedItems.json: "unevaluatedItems with items" - "valid under items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1006 - unevaluatedItems.json: "unevaluatedItems with items" - "invalid under items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/items/type" 104s # }, 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items/type" 104s # }, 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/items/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/items/type" 104s # }, 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/items/type" 104s # }, 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/items/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1007 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with no unevaluated items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1008 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with unevaluated items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1009 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with only (valid) additional items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1010 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with no additional items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1011 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with invalid additional item" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not boolean", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not boolean", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1012 - unevaluatedItems.json: "unevaluatedItems with nested prefixItems and items" - "with no additional items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1013 - unevaluatedItems.json: "unevaluatedItems with nested prefixItems and items" - "with additional items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1014 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with no additional items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1015 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with additional items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1016 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has no unevaluated items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1017 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has unevaluated items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1018 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has no unevaluated items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1019 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has unevaluated items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1020 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with no unevaluated items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1021 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with unevaluated items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1022 - unevaluatedItems.json: "unevaluatedItems with not" - "with unevaluated items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1023 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has no unevaluated items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1024 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has unevaluated items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1025 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has no unevaluated items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1026 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has unevaluated items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/4", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/4", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1027 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with no unevaluated items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1028 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with unevaluated items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1029 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with no unevaluated items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1030 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with unevaluated items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1031 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with no unevaluated items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1032 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with unevaluated items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1033 - unevaluatedItems.json: "unevaluatedItems with $dynamicRef" - "with no unevaluated items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1034 - unevaluatedItems.json: "unevaluatedItems with $dynamicRef" - "with unevaluated items" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/$ref/unevaluatedItems" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/$ref/unevaluatedItems" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1035 - unevaluatedItems.json: "unevaluatedItems can't see inside cousins" - "always fails" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/allOf/1/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/allOf/1/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1036 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "no extra items" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1037 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "uncle keyword evaluation is not significant" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/foo/1", 104s # "keywordLocation": "/properties/foo/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/unevaluatedItems" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/foo/1", 104s # "keywordLocation": "/properties/foo/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/unevaluatedItems" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1038 - unevaluatedItems.json: "unevaluatedItems depends on adjacent contains" - "second item is evaluated by contains" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1039 - unevaluatedItems.json: "unevaluatedItems depends on adjacent contains" - "contains fails, second item is not evaluated" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/contains/type" 104s # }, 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/contains/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/contains/type" 104s # }, 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/contains/type" 104s # }, 104s # { 104s # "error": "subschema is not valid against any item", 104s # "instanceLocation": "", 104s # "keywordLocation": "/contains" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1040 - unevaluatedItems.json: "unevaluatedItems depends on adjacent contains" - "contains passes, second item is not evaluated" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1041 - unevaluatedItems.json: "unevaluatedItems depends on multiple nested contains" - "5 not evaluated, passes unevaluatedItems" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1042 - unevaluatedItems.json: "unevaluatedItems depends on multiple nested contains" - "7 not evaluated, fails unevaluatedItems" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 5", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/unevaluatedItems/multipleOf" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is not a multiple of 5", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/unevaluatedItems/multipleOf" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1043 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "empty array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1044 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only a's are valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1045 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "a's and b's are valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1046 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "a's, b's and c's are valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1047 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only b's are invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1048 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only c's are invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1049 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only b's and c's are invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/4", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/1", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/3", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/4", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1050 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only a's and c's are invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/4", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/4", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1051 - unevaluatedItems.json: "non-array instances are valid" - "ignores booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1052 - unevaluatedItems.json: "non-array instances are valid" - "ignores integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1053 - unevaluatedItems.json: "non-array instances are valid" - "ignores floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1054 - unevaluatedItems.json: "non-array instances are valid" - "ignores objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1055 - unevaluatedItems.json: "non-array instances are valid" - "ignores strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1056 - unevaluatedItems.json: "non-array instances are valid" - "ignores null" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1057 - unevaluatedItems.json: "unevaluatedItems with null instance elements" - "allows null elements" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1058 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "valid in case if is evaluated" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1059 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "invalid in case if is evaluated" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/0", 104s # "keywordLocation": "/unevaluatedItems" 104s # }, 104s # { 104s # "error": "subschema is not valid against all additional items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 1060 - unevaluatedProperties.json: "unevaluatedProperties true" - "with no unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1061 - unevaluatedProperties.json: "unevaluatedProperties true" - "with unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1062 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with no unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1063 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with valid unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1064 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with invalid unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "length is less than 3", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/unevaluatedProperties/minLength" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "length is less than 3", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/unevaluatedProperties/minLength" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1065 - unevaluatedProperties.json: "unevaluatedProperties false" - "with no unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1066 - unevaluatedProperties.json: "unevaluatedProperties false" - "with unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1067 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with no unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1068 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1069 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with no unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1070 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1071 - unevaluatedProperties.json: "unevaluatedProperties with adjacent bool additionalProperties" - "with no additional properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1072 - unevaluatedProperties.json: "unevaluatedProperties with adjacent bool additionalProperties" - "with additional properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1073 - unevaluatedProperties.json: "unevaluatedProperties with adjacent non-bool additionalProperties" - "with only valid additional properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1074 - unevaluatedProperties.json: "unevaluatedProperties with adjacent non-bool additionalProperties" - "with invalid additional properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/additionalProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1075 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with no additional properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1076 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with additional properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1077 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with no additional properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1078 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with additional properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1079 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with no additional properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1080 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with additional properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1081 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with no nested unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1082 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with nested unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1083 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has no unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1084 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1085 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has no unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1086 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/quux", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/quux", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1087 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with no unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1088 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/quux", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/quux", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1089 - unevaluatedProperties.json: "unevaluatedProperties with not" - "with unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1090 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has no unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1091 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1092 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has no unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1093 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1094 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has no unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1095 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1096 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has no unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1097 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1098 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has no unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1099 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1100 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has no unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1101 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1102 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with no unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1103 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1104 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with no unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1105 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1106 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with no unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1107 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1108 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with no unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1109 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1110 - unevaluatedProperties.json: "unevaluatedProperties with $dynamicRef" - "with no unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1111 - unevaluatedProperties.json: "unevaluatedProperties with $dynamicRef" - "with unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/$ref/unevaluatedProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/baz", 104s # "keywordLocation": "/$ref/unevaluatedProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1112 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins" - "always fails" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1113 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins (reverse order)" - "always fails" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1114 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with no nested unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1115 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with nested unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1116 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with no nested unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1117 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with nested unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1118 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with no nested unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1119 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with nested unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1120 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with no nested unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1121 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with nested unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1122 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with no nested unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1123 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with nested unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1124 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with no nested unevaluated properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1125 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with nested unevaluated properties" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/1/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 1 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1126 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "no extra properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1127 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "uncle keyword evaluation is not significant" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo/faz", 104s # "keywordLocation": "/properties/foo/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo/faz", 104s # "keywordLocation": "/properties/foo/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/properties/foo/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1128 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "base case: both properties present" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1129 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, bar is missing" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1130 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, foo is missing" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "subschema 0 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1131 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "base case: both properties present" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1132 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, bar is missing" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1133 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, foo is missing" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1134 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Empty is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1135 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Single is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1136 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 1st level is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/y", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/y", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1137 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Nested is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1138 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 2nd level is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/unevaluatedProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/x/y", 104s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/unevaluatedProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "/x", 104s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/unevaluatedProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/x/y", 104s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/unevaluatedProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "/x", 104s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1139 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Deep nested is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1140 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 3rd level is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/unevaluatedProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/x/x/y", 104s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/unevaluatedProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "/x/x", 104s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/x", 104s # "keywordLocation": "/properties/x/$ref/properties" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/unevaluatedProperties", 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/x/x/y", 104s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/unevaluatedProperties", 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "/x/x", 104s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/x", 104s # "keywordLocation": "/properties/x/$ref/properties" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1141 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "Empty is invalid (no x or y)" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/two/required", 104s # "error": "object is missing property: x", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 104s # }, 104s # { 104s # "error": "object is missing property: y", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/2/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/2/oneOf" 104s # }, 104s # { 104s # "error": "subschema 2 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/two/required", 104s # "error": "object is missing property: x", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 104s # }, 104s # { 104s # "error": "object is missing property: y", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/2/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/2/oneOf" 104s # }, 104s # { 104s # "error": "subschema 2 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1142 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b are invalid (no x or y)" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/two/required", 104s # "error": "object is missing property: x", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 104s # }, 104s # { 104s # "error": "object is missing property: y", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/2/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/2/oneOf" 104s # }, 104s # { 104s # "error": "subschema 2 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/two/required", 104s # "error": "object is missing property: x", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 104s # }, 104s # { 104s # "error": "object is missing property: y", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/2/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/2/oneOf" 104s # }, 104s # { 104s # "error": "subschema 2 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1143 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "x and y are invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/2/oneOf" 104s # }, 104s # { 104s # "error": "subschema 2 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/x", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/y", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/2/oneOf" 104s # }, 104s # { 104s # "error": "subschema 2 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/x", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/y", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1144 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and x are valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1145 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and y are valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1146 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x are valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1147 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and y are valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1148 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x and y are invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/2/oneOf" 104s # }, 104s # { 104s # "error": "subschema 2 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/x", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/y", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf/2/oneOf" 104s # }, 104s # { 104s # "error": "subschema 2 is not valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/allOf" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/x", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/y", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1149 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "Empty is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 104s # "error": "object is missing property: c", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 104s # "error": "object is missing property: d", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 104s # "error": "object is missing property: b", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 104s # "error": "object is missing property: xx", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 104s # "error": "object is missing property: all", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "error": "object is missing property: a", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 104s # "error": "object is missing property: c", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 104s # "error": "object is missing property: d", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 104s # "error": "object is missing property: b", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 104s # "error": "object is missing property: xx", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 104s # "error": "object is missing property: all", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "error": "object is missing property: a", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1150 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1151 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1152 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1153 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "d is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1154 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + b is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1155 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + c is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1156 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + d is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1157 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + c is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "error": "object is missing property: a", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/b", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/c", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "error": "object is missing property: a", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/b", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/c", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1158 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + d is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "error": "object is missing property: a", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/b", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/d", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "error": "object is missing property: a", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/b", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/d", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1159 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c + d is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 104s # "error": "object is missing property: b", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 104s # "error": "object is missing property: xx", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 104s # "error": "object is missing property: all", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "error": "object is missing property: a", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/c", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/d", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 104s # "error": "object is missing property: b", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 104s # "error": "object is missing property: xx", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 104s # "error": "object is missing property: all", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "error": "object is missing property: a", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/c", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/d", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1160 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1161 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foox is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1162 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foo is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1163 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + a is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1164 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + b is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 104s # "error": "multiple subschemas are valid: 1, 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "error": "object is missing property: a", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/b", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/xx", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 104s # "error": "multiple subschemas are valid: 1, 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "error": "object is missing property: a", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/b", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/xx", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1165 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + c is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 104s # "error": "multiple subschemas are valid: 0, 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "error": "object is missing property: a", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/c", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/xx", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 104s # "error": "multiple subschemas are valid: 0, 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "error": "object is missing property: a", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/c", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/xx", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1166 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + d is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 104s # "error": "multiple subschemas are valid: 0, 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "error": "object is missing property: a", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/d", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/xx", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 104s # "error": "multiple subschemas are valid: 0, 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/0/$ref/oneOf" 104s # }, 104s # { 104s # "error": "object is missing property: a", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf/1/required" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/d", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/xx", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1167 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1168 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + foo is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1169 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + a is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "multiple subschemas are valid: 0, 1", 104s # "instanceLocation": "", 104s # "keywordLocation": "/oneOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1170 - unevaluatedProperties.json: "non-object instances are valid" - "ignores booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1171 - unevaluatedProperties.json: "non-object instances are valid" - "ignores integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1172 - unevaluatedProperties.json: "non-object instances are valid" - "ignores floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1173 - unevaluatedProperties.json: "non-object instances are valid" - "ignores arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1174 - unevaluatedProperties.json: "non-object instances are valid" - "ignores strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1175 - unevaluatedProperties.json: "non-object instances are valid" - "ignores null" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1176 - unevaluatedProperties.json: "unevaluatedProperties with null valued instance properties" - "allows null valued properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1177 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "allows only number properties" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1178 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "string property is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/a", 104s # "keywordLocation": "/unevaluatedProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "/a", 104s # "keywordLocation": "/unevaluatedProperties/type" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1179 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "valid in case if is evaluated" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1180 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "invalid in case if is evaluated" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1181 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't consider dependentSchemas" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/foo", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1182 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't see bar when foo2 is absent" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/unevaluatedProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/unevaluatedProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1183 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties sees bar when foo2 is present" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 1184 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1185 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1186 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 2 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 2 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1187 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1188 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1189 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1190 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1191 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 2 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 2 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1192 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1193 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1194 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1195 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1196 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1197 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1198 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1199 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 2 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 2 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1200 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1201 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1202 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1203 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1204 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1205 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1206 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1207 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 4 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 4 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1208 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1209 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1210 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1211 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1212 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1213 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1214 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1215 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1216 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1217 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1218 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 2 and 3 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 2 and 3 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1219 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 2 and 3 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 2 and 3 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1220 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1221 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1222 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1223 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "items at indices 0 and 1 are not unique", 104s # "instanceLocation": "", 104s # "keywordLocation": "/uniqueItems" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1224 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1225 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1226 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1227 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1228 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1229 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1230 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1231 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1232 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1233 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1234 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1235 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1236 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1237 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1238 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1239 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1240 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1241 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1242 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1243 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1244 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1245 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1246 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1247 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1248 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1249 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1250 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1251 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1252 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional item not permitted", 104s # "instanceLocation": "/2", 104s # "keywordLocation": "/items" 104s # }, 104s # { 104s # "error": "subschema is not valid against all items", 104s # "instanceLocation": "", 104s # "keywordLocation": "/items" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 1253 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "applicator vocabulary still works" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 104s # "error": "property not permitted", 104s # "instanceLocation": "/badProperty", 104s # "keywordLocation": "/properties/badProperty" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 104s # "error": "property not permitted", 104s # "instanceLocation": "/badProperty", 104s # "keywordLocation": "/properties/badProperty" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1254 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: valid number" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1255 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: invalid number, but it still validates" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1256 - vocabulary.json: "ignore unrecognized optional vocabulary" - "string value" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not number", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1257 - vocabulary.json: "ignore unrecognized optional vocabulary" - "number value" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 1258 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "exact match to enum, and type matches" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1259 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "in implementations that strip $anchor, this may match either $def" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/$ref/enum" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 104s # "error": "got object, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1/$ref/type" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/$ref/enum" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 104s # "error": "got object, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1/$ref/type" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1260 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "match $ref to $anchor" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1261 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "no match on enum or $ref to $anchor" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/$ref/enum" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1/$ref/type" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/$ref/enum" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1/$ref/type" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 1262 - optional/bignum.json: "integer" - "a bignum is an integer" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1263 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1264 - optional/bignum.json: "number" - "a bignum is a number" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1265 - optional/bignum.json: "number" - "a negative bignum is a number" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1266 - optional/bignum.json: "string" - "a bignum is not a string" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/type" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1267 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1268 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 104s # "instanceLocation": "", 104s # "keywordLocation": "/exclusiveMaximum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 104s # "instanceLocation": "", 104s # "keywordLocation": "/exclusiveMaximum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1269 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1270 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 104s # "instanceLocation": "", 104s # "keywordLocation": "/exclusiveMinimum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 104s # "instanceLocation": "", 104s # "keywordLocation": "/exclusiveMinimum" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 1271 - optional/cross-draft.json: "refs to historic drafts are processed as historic drafts" - "first item not a string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 1272 - optional/dependencies-compatibility.json: "single dependency" - "neither" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1273 - optional/dependencies-compatibility.json: "single dependency" - "nondependant" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1274 - optional/dependencies-compatibility.json: "single dependency" - "with dependency" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1275 - optional/dependencies-compatibility.json: "single dependency" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "dependencies": { 104s # "bar": [ 104s # "foo" 104s # ] 104s # } 104s # } 104s # data: { 104s # "bar": 2 104s # } 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1276 - optional/dependencies-compatibility.json: "single dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1277 - optional/dependencies-compatibility.json: "single dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1278 - optional/dependencies-compatibility.json: "single dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1279 - optional/dependencies-compatibility.json: "empty dependents" - "empty object" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1280 - optional/dependencies-compatibility.json: "empty dependents" - "object with one property" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1281 - optional/dependencies-compatibility.json: "empty dependents" - "non-object is valid" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1282 - optional/dependencies-compatibility.json: "multiple dependents required" - "neither" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1283 - optional/dependencies-compatibility.json: "multiple dependents required" - "nondependants" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1284 - optional/dependencies-compatibility.json: "multiple dependents required" - "with dependencies" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1285 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "dependencies": { 104s # "quux": [ 104s # "foo", 104s # "bar" 104s # ] 104s # } 104s # } 104s # data: { 104s # "foo": 1, 104s # "quux": 2 104s # } 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1286 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing other dependency" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "dependencies": { 104s # "quux": [ 104s # "foo", 104s # "bar" 104s # ] 104s # } 104s # } 104s # data: { 104s # "bar": 1, 104s # "quux": 2 104s # } 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1287 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing both dependencies" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "dependencies": { 104s # "quux": [ 104s # "foo", 104s # "bar" 104s # ] 104s # } 104s # } 104s # data: { 104s # "quux": 1 104s # } 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1288 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1289 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1290 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF missing dependent" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "dependencies": { 104s # "foo\nbar": [ 104s # "foo\rbar" 104s # ], 104s # "foo\"bar": [ 104s # "foo'bar" 104s # ] 104s # } 104s # } 104s # data: { 104s # "foo": 2, 104s # "foo\nbar": 1 104s # } 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1291 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "dependencies": { 104s # "foo\nbar": [ 104s # "foo\rbar" 104s # ], 104s # "foo\"bar": [ 104s # "foo'bar" 104s # ] 104s # } 104s # } 104s # data: { 104s # "foo\"bar": 2 104s # } 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1292 - optional/dependencies-compatibility.json: "single schema dependency" - "valid" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1293 - optional/dependencies-compatibility.json: "single schema dependency" - "no dependency" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1294 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "dependencies": { 104s # "bar": { 104s # "properties": { 104s # "bar": { 104s # "type": "integer" 104s # }, 104s # "foo": { 104s # "type": "integer" 104s # } 104s # } 104s # } 104s # } 104s # } 104s # data: { 104s # "bar": 2, 104s # "foo": "quux" 104s # } 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1295 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type other" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "dependencies": { 104s # "bar": { 104s # "properties": { 104s # "bar": { 104s # "type": "integer" 104s # }, 104s # "foo": { 104s # "type": "integer" 104s # } 104s # } 104s # } 104s # } 104s # } 104s # data: { 104s # "bar": "quux", 104s # "foo": 2 104s # } 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1296 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type both" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "dependencies": { 104s # "bar": { 104s # "properties": { 104s # "bar": { 104s # "type": "integer" 104s # }, 104s # "foo": { 104s # "type": "integer" 104s # } 104s # } 104s # } 104s # } 104s # } 104s # data: { 104s # "bar": "quux", 104s # "foo": "quux" 104s # } 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1297 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1298 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1299 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1300 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema true is valid" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1301 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema false is invalid" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "dependencies": { 104s # "bar": false, 104s # "foo": true 104s # } 104s # } 104s # data: { 104s # "bar": 2 104s # } 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1302 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with both properties is invalid" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "dependencies": { 104s # "bar": false, 104s # "foo": true 104s # } 104s # } 104s # data: { 104s # "bar": 2, 104s # "foo": 1 104s # } 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1303 - optional/dependencies-compatibility.json: "boolean subschemas" - "empty object is valid" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1304 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s ok 1305 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "dependencies": { 104s # "foo\tbar": { 104s # "minProperties": 4 104s # }, 104s # "foo'bar": { 104s # "required": [ 104s # "foo\"bar" 104s # ] 104s # } 104s # } 104s # } 104s # data: { 104s # "foo'bar": { 104s # "foo\"bar": 1 104s # } 104s # } 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1306 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "dependencies": { 104s # "foo\tbar": { 104s # "minProperties": 4 104s # }, 104s # "foo'bar": { 104s # "required": [ 104s # "foo\"bar" 104s # ] 104s # } 104s # } 104s # } 104s # data: { 104s # "a": 2, 104s # "foo\tbar": 1 104s # } 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1307 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "dependencies": { 104s # "foo\tbar": { 104s # "minProperties": 4 104s # }, 104s # "foo'bar": { 104s # "required": [ 104s # "foo\"bar" 104s # ] 104s # } 104s # } 104s # } 104s # data: { 104s # "foo'bar": 1 104s # } 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s # 104s ok 1308 - optional/dynamicRef.json: "$dynamicRef skips over intermediate resources - pointer reference across resource boundary" - "integer property passes" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1309 - optional/dynamicRef.json: "$dynamicRef skips over intermediate resources - pointer reference across resource boundary" - "string property fails" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/$defs/defaultContent/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/bar-item/content", 104s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/bar-item", 104s # "keywordLocation": "/properties/bar-item/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/main#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/$defs/defaultContent/type", 104s # "error": "got string, not integer", 104s # "instanceLocation": "/bar-item/content", 104s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "/bar-item", 104s # "keywordLocation": "/properties/bar-item/$ref/properties" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/main#/properties", 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/properties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 1310 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1311 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1312 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1313 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1314 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1315 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1316 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1317 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1318 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s 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" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "pattern": "^\\d$", 104s # "type": "string" 104s # } 104s # data: "߀" 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s 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" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "pattern": "^\\d$", 104s # "type": "string" 104s # } 104s # data: "߀" 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s 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" 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false # 104s 1..1 104s } 104s 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" 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected true; got false 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "pattern": "^\\D$", 104s # "type": "string" 104s # } 104s # data: "߀" 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s 1..1 104s } 104s 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" 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected true; got false 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "pattern": "^\\D$", 104s # "type": "string" 104s # } 104s # data: "߀" 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s 1..1 104s } 104s ok 1324 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true # 104s 1..1 104s } 104s 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" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "pattern": "^\\w$", 104s # "type": "string" 104s # } 104s # data: "é" 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s 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" 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false # 104s 1..1 104s } 104s 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" 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected true; got false 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "pattern": "^\\W$", 104s # "type": "string" 104s # } 104s # data: "é" 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s 1..1 104s } 104s ok 1328 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1329 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1330 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1331 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1332 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1333 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected true; got false 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "pattern": "^\\s$", 104s # "type": "string" 104s # } 104s # data: "" 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s 1..1 104s } 104s ok 1334 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1335 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1336 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1337 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1338 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1339 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1340 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1341 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1342 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1343 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s 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" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "pattern": "^\\S$", 104s # "type": "string" 104s # } 104s # data: "" 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1345 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1346 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1347 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1348 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1349 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1350 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1351 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1352 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1353 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1354 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s 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" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "pattern": "\\wcole" 104s # } 104s # 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." 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s 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" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "pattern": "\\wcole" 104s # } 104s # 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." 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1357 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1358 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1359 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1360 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1361 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1362 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s 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" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "pattern": "^\\d+$" 104s # } 104s # data: "৪২" 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1364 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1365 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1366 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1367 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1368 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1369 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1370 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/L'ÉCOLE", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/L'ÉCOLE", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1371 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s 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" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "additionalProperties": false, 104s # "patternProperties": { 104s # "\\wcole": true 104s # }, 104s # "type": "object" 104s # } 104s # data: { 104s # "l'école": "pas de vraie vie" 104s # } 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s 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" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "additionalProperties": false, 104s # "patternProperties": { 104s # "\\wcole": true 104s # }, 104s # "type": "object" 104s # } 104s # data: { 104s # "l'école": "pas de vraie vie" 104s # } 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1374 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/L'ÉCOLE", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/L'ÉCOLE", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1375 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/l'école", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/l'école", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1376 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/l'école", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/l'école", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1377 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1378 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1379 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/-%#", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/-%#", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s 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" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected false; got true 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "additionalProperties": false, 104s # "patternProperties": { 104s # "^\\d+$": true 104s # }, 104s # "type": "object" 104s # } 104s # data: { 104s # "৪২": "khajit has wares if you have coin" 104s # } 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s ok 1381 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1382 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/-%#", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "additional property not permitted", 104s # "instanceLocation": "/-%#", 104s # "keywordLocation": "/additionalProperties" 104s # }, 104s # { 104s # "error": "not all additional properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/additionalProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1383 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 1384 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 1385 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: valid string" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1386 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: invalid string" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 104s # "error": "not a valid ipv4", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 104s # "error": "not a valid ipv4", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1387 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: valid string" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1388 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: invalid string" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 104s # "error": "not a valid ipv4", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 104s # "error": "not a valid ipv4", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 1389 - optional/id.json: "$id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1390 - optional/id.json: "$id inside an enum is not a real identifier" - "match $ref to $id" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1391 - optional/id.json: "$id inside an enum is not a real identifier" - "no match on enum or $ref to $id" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/$ref/enum" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/id/my_identifier.json#/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1/$ref/type" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 104s # "error": "value does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/$ref/enum" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/id/my_identifier.json#/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1/$ref/type" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 1392 - optional/no-schema.json: "validation without $schema" - "a 3-character string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1393 - optional/no-schema.json: "validation without $schema" - "a 1-character string is not valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "length is less than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minLength" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "length is less than 2", 104s # "instanceLocation": "", 104s # "keywordLocation": "/minLength" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1394 - optional/no-schema.json: "validation without $schema" - "a non-string is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 1395 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1396 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1397 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1398 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1399 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1400 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1401 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "pattern does not match", 104s # "instanceLocation": "", 104s # "keywordLocation": "/pattern" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1402 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1403 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1404 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1405 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/🐲", 104s # "keywordLocation": "/patternProperties/^🐲*$/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/🐲", 104s # "keywordLocation": "/patternProperties/^🐲*$/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1406 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/🐲🐲", 104s # "keywordLocation": "/patternProperties/^🐲*$/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "got string, not integer", 104s # "instanceLocation": "/🐲🐲", 104s # "keywordLocation": "/patternProperties/^🐲*$/type" 104s # }, 104s # { 104s # "error": "not all properties are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/patternProperties" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 1407 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "match" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/$ref" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/$ref" 104s # } 104s # ], 104s # "valid": false 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected true; got false 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "properties": { 104s # "bar": { 104s # "$ref": "#/unknown-keyword" 104s # } 104s # }, 104s # "unknown-keyword": { 104s # "type": "integer" 104s # } 104s # } 104s # data: { 104s # "bar": 3 104s # } 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/$ref" 104s # } 104s # ], 104s # "valid": false 104s # } 104s 1..1 104s } 104s ok 1408 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "mismatch" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/$ref" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/$ref" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false # 104s 1..1 104s } 104s ok 1409 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "match" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/$ref" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/$ref" 104s # } 104s # ], 104s # "valid": false 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected true; got false 104s # schema: { 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "properties": { 104s # "bar": { 104s # "$ref": "#/properties/foo/unknown-keyword" 104s # }, 104s # "foo": { 104s # "unknown-keyword": { 104s # "type": "integer" 104s # } 104s # } 104s # } 104s # } 104s # data: { 104s # "bar": 3 104s # } 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/$ref" 104s # } 104s # ], 104s # "valid": false 104s # } 104s 1..1 104s } 104s ok 1410 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "mismatch" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/$ref" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 104s # "instanceLocation": "/bar", 104s # "keywordLocation": "/properties/bar/$ref" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false # 104s 1..1 104s } 104s ok 1411 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "match" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "/base#/$ref", 104s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "/base#/$ref", 104s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref" 104s # } 104s # ], 104s # "valid": false 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft2020-12.t line 53. 104s # expected true; got false 104s # schema: { 104s # "$id": "/base", 104s # "$ref": "#/examples/0", 104s # "$schema": "https://json-schema.org/draft/2020-12/schema", 104s # "examples": [ 104s # { 104s # "type": "string" 104s # } 104s # ] 104s # } 104s # data: "a string" 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "/base#/$ref", 104s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref" 104s # } 104s # ], 104s # "valid": false 104s # } 104s 1..1 104s } 104s ok 1412 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "mismatch" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "/base#/$ref", 104s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "/base#/$ref", 104s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 104s # "instanceLocation": "", 104s # "keywordLocation": "/$ref" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false # 104s 1..1 104s } 104s # 104s 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" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 1414 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/$ref/not" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1/$ref/not" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 104s # "error": "got null, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/2/$ref/type" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/$ref/not" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1/$ref/not" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 104s # "error": "got null, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/2/$ref/type" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 1415 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 104s # result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/$ref/not" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1/$ref/not" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/2/$ref/type" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/0/$ref/not" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 104s # "error": "subschema is valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/1/$ref/not" 104s # }, 104s # { 104s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 104s # "error": "got integer, not string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf/2/$ref/type" 104s # }, 104s # { 104s # "error": "no subschemas are valid", 104s # "instanceLocation": "", 104s # "keywordLocation": "/anyOf" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s # generated with: Test::JSON::Schema::Acceptance 1.029 104s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 104s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 104s # specification version: draft2020-12 104s # optional tests included: yes 104s # skipping directory: optional/format 104s # 104s # filename pass todo-fail fail 104s # --------------------------------------------------------------- 104s # additionalProperties.json 21 0 0 104s # allOf.json 30 0 0 104s # anchor.json 8 0 0 104s # anyOf.json 18 0 0 104s # boolean_schema.json 18 0 0 104s # const.json 50 0 0 104s # contains.json 21 0 0 104s # content.json 18 0 0 104s # default.json 7 0 0 104s # defs.json 2 0 0 104s # dependentRequired.json 20 0 0 104s # dependentSchemas.json 20 0 0 104s # dynamicRef.json 42 0 0 104s # enum.json 45 0 0 104s # exclusiveMaximum.json 4 0 0 104s # exclusiveMinimum.json 4 0 0 104s # format.json 133 0 0 104s # if-then-else.json 26 0 0 104s # infinite-loop-detection.json 2 0 0 104s # items.json 29 0 0 104s # maxContains.json 12 0 0 104s # maxItems.json 6 0 0 104s # maxLength.json 7 0 0 104s # maxProperties.json 10 0 0 104s # maximum.json 8 0 0 104s # minContains.json 28 0 0 104s # minItems.json 6 0 0 104s # minLength.json 7 0 0 104s # minProperties.json 8 0 0 104s # minimum.json 11 0 0 104s # multipleOf.json 10 0 0 104s # not.json 40 0 0 104s # oneOf.json 27 0 0 104s # pattern.json 9 0 0 104s # patternProperties.json 23 0 0 104s # prefixItems.json 11 0 0 104s # properties.json 28 0 0 104s # propertyNames.json 20 0 0 104s # ref.json 77 0 0 104s # refRemote.json 31 0 0 104s # required.json 16 0 0 104s # type.json 80 0 0 104s # unevaluatedItems.json 66 0 0 104s # unevaluatedProperties.json 124 0 0 104s # uniqueItems.json 69 0 0 104s # vocabulary.json 5 0 0 104s # optional/anchor.json 4 0 0 104s # optional/bignum.json 9 0 0 104s # optional/cross-draft.json 1 0 0 104s # optional/dependencies-compatibility.json 22 14 0 104s # optional/dynamicRef.json 2 0 0 104s # optional/ecmascript-regex.json 60 14 0 104s # optional/float-overflow.json 1 0 0 104s # optional/format-assertion.json 4 0 0 104s # optional/id.json 3 0 0 104s # optional/no-schema.json 3 0 0 104s # optional/non-bmp-regex.json 12 0 0 104s # optional/refOfUnknownKeyword.json 3 3 0 104s # optional/unknownKeyword.json 3 0 0 104s # --------------------------------------------------------------- 104s # TOTAL 1384 31 0 104s # 104s # Congratulations, all non-optional tests are passing! 104s # 104s ok 1416 - no leaks in the main evaluator object 104s ok 1417 - no leaks in the short-circuiting evaluator object 104s 1..1417 104s ok 104s t/zzz-acceptance-draft4-format.t ........ 104s # Seeded srand with seed '20251102' from local date. 104s # 104s # AUTHOR_TESTING: 104s # AUTOMATED_TESTING: 1 104s # EXTENDED_TESTING: 104s # NO_TODO: 104s # TEST_DIR: 104s # NO_SHORT_CIRCUIT: 104s # 104s # Using JSON decoder: Cpanel::JSON::XS 4.39 104s # 104s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft4/optional/format against draft4... 104s # 104s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid date-time string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 26 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 27 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 28 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 29 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 30 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 31 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 32 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 33 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid email string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid email string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 34 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 35 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 36 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 37 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid email string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid email string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 38 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid email string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid email string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 39 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 40 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid email string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid email string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 41 - hostname.json: "validation of host names" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 42 - hostname.json: "validation of host names" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 43 - hostname.json: "validation of host names" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 44 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 45 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 46 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 47 - hostname.json: "validation of host names" - "a valid host name" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 48 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 49 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 50 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 51 - hostname.json: "validation of host names" - "a host name with a component too long" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 52 - hostname.json: "validation of host names" - "starts with hyphen" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 53 - hostname.json: "validation of host names" - "ends with hyphen" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 54 - hostname.json: "validation of host names" - "starts with underscore" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 55 - hostname.json: "validation of host names" - "ends with underscore" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 56 - hostname.json: "validation of host names" - "contains underscore" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 57 - hostname.json: "validation of host names" - "maximum label length" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 58 - hostname.json: "validation of host names" - "exceeds maximum label length" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 59 - hostname.json: "validation of host names" - "single label" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 60 - hostname.json: "validation of host names" - "single label with hyphen" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 61 - hostname.json: "validation of host names" - "single label with digits" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 62 - hostname.json: "validation of host names" - "single label ending with digit" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 63 - hostname.json: "validation of host names" - "empty string" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 64 - hostname.json: "validation of host names" - "single dot" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid hostname string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 65 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 66 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 67 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 68 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 69 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 70 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 71 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 72 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv4 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv4 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 73 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv4 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv4 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 74 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv4 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv4 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 75 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv4 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv4 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 76 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv4 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv4 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 77 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv4 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv4 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 78 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 79 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv4 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv4 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 80 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv4 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv4 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 81 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 82 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 83 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 84 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 85 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 86 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 87 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 88 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 89 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 90 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 91 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 92 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 93 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 94 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 95 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 96 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 97 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 98 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 99 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 100 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 101 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 102 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 103 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 104 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 105 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 106 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 107 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 108 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 109 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 110 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 111 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 112 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 113 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 114 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 115 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 116 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 117 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 118 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 119 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 120 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid ipv6 string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s # 104s ok 121 - unknown.json: "unknown format" - "unknown formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 122 - unknown.json: "unknown format" - "unknown formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 123 - unknown.json: "unknown format" - "unknown formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 124 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 125 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 126 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 127 - unknown.json: "unknown format" - "unknown formats ignore strings" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s # 104s ok 128 - uri.json: "validation of URIs" - "all string formats ignore integers" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 129 - uri.json: "validation of URIs" - "all string formats ignore floats" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 130 - uri.json: "validation of URIs" - "all string formats ignore objects" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 131 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 132 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 133 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 134 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 135 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 136 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 137 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 138 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 139 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 140 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 141 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 142 - uri.json: "validation of URIs" - "a valid URL " { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 143 - uri.json: "validation of URIs" - "a valid mailto URI" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 144 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 145 - uri.json: "validation of URIs" - "a valid tel URI" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 146 - uri.json: "validation of URIs" - "a valid URN" { 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s ok 1 - test passes: data is valid: true 104s 1..1 104s } 104s ok 147 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid uri string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid uri string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 148 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid uri string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid uri string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 149 - uri.json: "validation of URIs" - "an invalid URI" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid uri string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid uri string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 150 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid uri string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid uri string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 151 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid uri string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid uri string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 152 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 104s # result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid uri string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s # short-circuited result: { 104s # "errors": [ 104s # { 104s # "error": "not a valid uri string", 104s # "instanceLocation": "", 104s # "keywordLocation": "/format" 104s # } 104s # ], 104s # "valid": false 104s # } 104s ok 1 - test passes: data is valid: false 104s 1..1 104s } 104s ok 153 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 104s # result: { 104s # "valid": true 104s # } 104s # short-circuited result: { 104s # "valid": true 104s # } 104s not ok 1 - evaluation result is incorrect # 104s # Failed test (with amnesty) 'evaluation result is incorrect' 104s # at t/zzz-acceptance-draft4-format.t line 65. 104s # expected false; got true 104s # schema: { 104s # "format": "uri" 104s # } 104s # data: "bar,baz:foo" 104s # result: { 104s # "valid": true 104s # } 104s 1..1 104s } 104s # 104s # generated with: Test::JSON::Schema::Acceptance 1.029 104s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 104s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 104s # specification version: draft4 104s # using custom test directory: /optional/format 104s # optional tests included: yes 104s # 104s # filename pass todo-fail fail 104s # --------------------------------------------------------------- 104s # date-time.json 25 0 0 104s # email.json 15 0 0 104s # hostname.json 24 0 0 104s # ipv4.json 16 0 0 104s # ipv6.json 40 0 0 104s # unknown.json 7 0 0 104s # uri.json 25 1 0 104s # --------------------------------------------------------------- 104s # TOTAL 152 1 0 104s # 104s # Congratulations, all non-optional tests are passing! 104s # 104s ok 154 - no leaks in the main evaluator object 104s ok 155 - no leaks in the short-circuiting evaluator object 104s 1..155 104s ok 107s t/zzz-acceptance-draft4.t ............... 107s # Seeded srand with seed '20251102' from local date. 107s # 107s # AUTHOR_TESTING: 107s # AUTOMATED_TESTING: 1 107s # EXTENDED_TESTING: 107s # NO_TODO: 107s # TEST_DIR: 107s # NO_SHORT_CIRCUIT: 107s # 107s # Using JSON decoder: Cpanel::JSON::XS 4.39 107s # 107s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 107s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft4 against draft4... 107s # 107s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/3", 107s # "keywordLocation": "/additionalItems/type" 107s # }, 107s # { 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/3", 107s # "keywordLocation": "/additionalItems/type" 107s # }, 107s # { 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "all items match schema" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 4 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 5 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "additional item not permitted", 107s # "instanceLocation": "/3", 107s # "keywordLocation": "/additionalItems" 107s # }, 107s # { 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "additional item not permitted", 107s # "instanceLocation": "/3", 107s # "keywordLocation": "/additionalItems" 107s # }, 107s # { 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 9 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 10 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 11 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 12 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 13 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not boolean", 107s # "instanceLocation": "/1", 107s # "keywordLocation": "/additionalItems/type" 107s # }, 107s # { 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not boolean", 107s # "instanceLocation": "/1", 107s # "keywordLocation": "/additionalItems/type" 107s # }, 107s # { 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 14 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 15 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/1", 107s # "keywordLocation": "/additionalItems/type" 107s # }, 107s # { 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/1", 107s # "keywordLocation": "/additionalItems/type" 107s # }, 107s # { 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 16 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "additional item not permitted", 107s # "instanceLocation": "/1", 107s # "keywordLocation": "/additionalItems" 107s # }, 107s # { 107s # "error": "additional item not permitted", 107s # "instanceLocation": "/2", 107s # "keywordLocation": "/additionalItems" 107s # }, 107s # { 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "additional item not permitted", 107s # "instanceLocation": "/1", 107s # "keywordLocation": "/additionalItems" 107s # }, 107s # { 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 17 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 18 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 19 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 20 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/quux", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/quux", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 25 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 26 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/élmény", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/élmény", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 27 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 28 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 29 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not boolean", 107s # "instanceLocation": "/quux", 107s # "keywordLocation": "/additionalProperties/type" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not boolean", 107s # "instanceLocation": "/quux", 107s # "keywordLocation": "/additionalProperties/type" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 30 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 31 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not boolean", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/additionalProperties/type" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not boolean", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/additionalProperties/type" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 32 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 33 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not boolean", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/additionalProperties/type" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not boolean", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/additionalProperties/type" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 34 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 35 - allOf.json: "allOf" - "allOf" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 36 - allOf.json: "allOf" - "mismatch second" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/required" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/required" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 37 - allOf.json: "allOf" - "mismatch first" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/1/required" 107s # }, 107s # { 107s # "error": "subschema 1 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/1/required" 107s # }, 107s # { 107s # "error": "subschema 1 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 38 - allOf.json: "allOf" - "wrong type" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/allOf/0/properties/bar/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/properties" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/allOf/0/properties/bar/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/properties" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 39 - allOf.json: "allOf with base schema" - "valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 40 - allOf.json: "allOf with base schema" - "mismatch base schema" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 41 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/required" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/required" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 42 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: baz", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/1/required" 107s # }, 107s # { 107s # "error": "subschema 1 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: baz", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/1/required" 107s # }, 107s # { 107s # "error": "subschema 1 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 43 - allOf.json: "allOf with base schema" - "mismatch both" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/required" 107s # }, 107s # { 107s # "error": "object is missing property: baz", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/1/required" 107s # }, 107s # { 107s # "error": "subschemas 0, 1 are not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/required" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 44 - allOf.json: "allOf simple types" - "valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 45 - allOf.json: "allOf simple types" - "mismatch one" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is greater than 30", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/maximum" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is greater than 30", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/maximum" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 46 - allOf.json: "allOf with one empty schema" - "any data is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 47 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 48 - allOf.json: "allOf with the first empty schema" - "number is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 49 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/1/type" 107s # }, 107s # { 107s # "error": "subschema 1 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/1/type" 107s # }, 107s # { 107s # "error": "subschema 1 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 50 - allOf.json: "allOf with the last empty schema" - "number is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 51 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/type" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/type" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 52 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 53 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/allOf/0/type" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/allOf" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/allOf/0/type" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/allOf" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 54 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # }, 107s # { 107s # "error": "value is not a multiple of 3", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf" 107s # }, 107s # { 107s # "error": "value is not a multiple of 5", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 55 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # }, 107s # { 107s # "error": "value is not a multiple of 3", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 56 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # }, 107s # { 107s # "error": "value is not a multiple of 5", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 57 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 58 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 3", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf" 107s # }, 107s # { 107s # "error": "value is not a multiple of 5", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 3", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 59 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 3", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 3", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 60 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 5", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 5", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/0/multipleOf" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 61 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 62 - anyOf.json: "anyOf" - "first anyOf valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 63 - anyOf.json: "anyOf" - "second anyOf valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 64 - anyOf.json: "anyOf" - "both anyOf valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 65 - anyOf.json: "anyOf" - "neither anyOf valid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/type" 107s # }, 107s # { 107s # "error": "value is less than 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/1/minimum" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/type" 107s # }, 107s # { 107s # "error": "value is less than 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/1/minimum" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 66 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 67 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 68 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "length is greater than 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/maxLength" 107s # }, 107s # { 107s # "error": "length is less than 4", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/1/minLength" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "length is greater than 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/maxLength" 107s # }, 107s # { 107s # "error": "length is less than 4", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/1/minLength" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 69 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 70 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 71 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 72 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/anyOf/0/properties/bar/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/properties" 107s # }, 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/anyOf/1/properties/foo/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/1/properties" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/anyOf/0/properties/bar/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/properties" 107s # }, 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/anyOf/1/properties/foo/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/1/properties" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 73 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 74 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 75 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 76 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/anyOf/0/type" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/anyOf" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/anyOf/0/type" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/anyOf" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s # 107s ok 77 - default.json: "invalid type for default" - "valid when property is specified" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 78 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 79 - default.json: "invalid string value for default" - "valid when property is specified" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 80 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s 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)" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s 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)" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is greater than 3", 107s # "instanceLocation": "/alpha", 107s # "keywordLocation": "/properties/alpha/maximum" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is greater than 3", 107s # "instanceLocation": "/alpha", 107s # "keywordLocation": "/properties/alpha/maximum" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s 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" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 84 - definitions.json: "validate definition against metaschema" - "valid definition schema" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 85 - definitions.json: "validate definition against metaschema" - "invalid definition schema" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/simpleTypes/enum", 107s # "error": "value does not match", 107s # "instanceLocation": "/definitions/foo/type", 107s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf/1/type", 107s # "error": "got integer, not array", 107s # "instanceLocation": "/definitions/foo/type", 107s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf", 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "/definitions/foo/type", 107s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "/definitions/foo", 107s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/definitions/additionalProperties", 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "/definitions", 107s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/$ref/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/simpleTypes/enum", 107s # "error": "value does not match", 107s # "instanceLocation": "/definitions/foo/type", 107s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf/1/type", 107s # "error": "got integer, not array", 107s # "instanceLocation": "/definitions/foo/type", 107s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf", 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "/definitions/foo/type", 107s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "/definitions/foo", 107s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/definitions/additionalProperties", 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "/definitions", 107s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/$ref/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s # 107s ok 86 - dependencies.json: "dependencies" - "neither" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 87 - dependencies.json: "dependencies" - "nondependant" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 88 - dependencies.json: "dependencies" - "with dependency" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 89 - dependencies.json: "dependencies" - "missing dependency" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/bar" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/bar" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 90 - dependencies.json: "dependencies" - "ignores arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 91 - dependencies.json: "dependencies" - "ignores strings" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 92 - dependencies.json: "dependencies" - "ignores other non-objects" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 93 - dependencies.json: "multiple dependencies" - "neither" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 94 - dependencies.json: "multiple dependencies" - "nondependants" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 95 - dependencies.json: "multiple dependencies" - "with dependencies" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 96 - dependencies.json: "multiple dependencies" - "missing dependency" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/quux" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/quux" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 97 - dependencies.json: "multiple dependencies" - "missing other dependency" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/quux" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/quux" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 98 - dependencies.json: "multiple dependencies" - "missing both dependencies" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing properties: foo, bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/quux" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing properties: foo, bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/quux" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 99 - dependencies.json: "multiple dependencies subschema" - "valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 100 - dependencies.json: "multiple dependencies subschema" - "no dependency" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 101 - dependencies.json: "multiple dependencies subschema" - "wrong type" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/dependencies/bar/properties/foo/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/bar/properties" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/dependencies/bar/properties/foo/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/bar/properties" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 102 - dependencies.json: "multiple dependencies subschema" - "wrong type other" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/dependencies/bar/properties/bar/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/bar/properties" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/dependencies/bar/properties/bar/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/bar/properties" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 103 - dependencies.json: "multiple dependencies subschema" - "wrong type both" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/dependencies/bar/properties/bar/type" 107s # }, 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/dependencies/bar/properties/foo/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/bar/properties" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/dependencies/bar/properties/bar/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/bar/properties" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 104 - dependencies.json: "dependencies with escaped characters" - "valid object 1" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 105 - dependencies.json: "dependencies with escaped characters" - "valid object 2" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 106 - dependencies.json: "dependencies with escaped characters" - "valid object 3" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 107 - dependencies.json: "dependencies with escaped characters" - "invalid object 1" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo\rbar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/foo\nbar" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo\rbar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/foo\nbar" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 108 - dependencies.json: "dependencies with escaped characters" - "invalid object 2" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object has fewer than 4 properties", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object has fewer than 4 properties", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 109 - dependencies.json: "dependencies with escaped characters" - "invalid object 3" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo\"bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/foo'bar/required" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo\"bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/foo'bar/required" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 110 - dependencies.json: "dependencies with escaped characters" - "invalid object 4" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo'bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/foo\"bar" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo'bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/foo\"bar" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 111 - dependencies.json: "dependent subschema incompatible with root" - "matches root" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/dependencies/foo/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/foo/additionalProperties" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/dependencies/foo/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/foo/additionalProperties" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 112 - dependencies.json: "dependent subschema incompatible with root" - "matches dependency" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 113 - dependencies.json: "dependent subschema incompatible with root" - "matches both" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/dependencies/foo/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/foo/additionalProperties" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/dependencies/foo/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies/foo/additionalProperties" 107s # }, 107s # { 107s # "error": "not all dependencies are satisfied", 107s # "instanceLocation": "", 107s # "keywordLocation": "/dependencies" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 114 - dependencies.json: "dependent subschema incompatible with root" - "no dependency" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 115 - enum.json: "simple enum validation" - "one of the enum is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 116 - enum.json: "simple enum validation" - "something else is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 117 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 118 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 119 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 107s # result: { 107s # "errors": [ 107s # { 107s # "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)", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "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)", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 120 - enum.json: "heterogeneous enum validation" - "valid object matches" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 121 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 122 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 123 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 124 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 125 - enum.json: "enums in properties" - "both properties are valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 126 - enum.json: "enums in properties" - "wrong foo value" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/properties/foo/enum" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/properties/foo/enum" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 127 - enum.json: "enums in properties" - "wrong bar value" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/properties/bar/enum" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/properties/bar/enum" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 128 - enum.json: "enums in properties" - "missing optional property is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 129 - enum.json: "enums in properties" - "missing required property is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 130 - enum.json: "enums in properties" - "missing all properties is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 131 - enum.json: "enum with escaped characters" - "member 1 is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 132 - enum.json: "enum with escaped characters" - "member 2 is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 133 - enum.json: "enum with escaped characters" - "another string is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 134 - enum.json: "enum with false does not match 0" - "false is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 135 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 136 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 137 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 138 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 139 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 140 - enum.json: "enum with true does not match 1" - "true is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 141 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 142 - enum.json: "enum with true does not match 1" - "float one is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 143 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 144 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 145 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 146 - enum.json: "enum with 0 does not match false" - "false is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 147 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 148 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 149 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 150 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 151 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 152 - enum.json: "enum with 1 does not match true" - "true is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 153 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 154 - enum.json: "enum with 1 does not match true" - "float one is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 155 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 156 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 157 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 158 - enum.json: "nul characters in strings" - "match string with nul" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 159 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s # 107s ok 160 - format.json: "email format" - "all string formats ignore integers" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 161 - format.json: "email format" - "all string formats ignore floats" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 162 - format.json: "email format" - "all string formats ignore objects" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 163 - format.json: "email format" - "all string formats ignore arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 164 - format.json: "email format" - "all string formats ignore booleans" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 165 - format.json: "email format" - "all string formats ignore nulls" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 166 - format.json: "ipv4 format" - "all string formats ignore integers" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 167 - format.json: "ipv4 format" - "all string formats ignore floats" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 168 - format.json: "ipv4 format" - "all string formats ignore objects" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 169 - format.json: "ipv4 format" - "all string formats ignore arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 170 - format.json: "ipv4 format" - "all string formats ignore booleans" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 171 - format.json: "ipv4 format" - "all string formats ignore nulls" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 172 - format.json: "ipv6 format" - "all string formats ignore integers" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 173 - format.json: "ipv6 format" - "all string formats ignore floats" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 174 - format.json: "ipv6 format" - "all string formats ignore objects" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 175 - format.json: "ipv6 format" - "all string formats ignore arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 176 - format.json: "ipv6 format" - "all string formats ignore booleans" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 177 - format.json: "ipv6 format" - "all string formats ignore nulls" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 178 - format.json: "hostname format" - "all string formats ignore integers" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 179 - format.json: "hostname format" - "all string formats ignore floats" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 180 - format.json: "hostname format" - "all string formats ignore objects" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 181 - format.json: "hostname format" - "all string formats ignore arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 182 - format.json: "hostname format" - "all string formats ignore booleans" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 183 - format.json: "hostname format" - "all string formats ignore nulls" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 184 - format.json: "date-time format" - "all string formats ignore integers" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 185 - format.json: "date-time format" - "all string formats ignore floats" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 186 - format.json: "date-time format" - "all string formats ignore objects" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 187 - format.json: "date-time format" - "all string formats ignore arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 188 - format.json: "date-time format" - "all string formats ignore booleans" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 189 - format.json: "date-time format" - "all string formats ignore nulls" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 190 - format.json: "uri format" - "all string formats ignore integers" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 191 - format.json: "uri format" - "all string formats ignore floats" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 192 - format.json: "uri format" - "all string formats ignore objects" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 193 - format.json: "uri format" - "all string formats ignore arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 194 - format.json: "uri format" - "all string formats ignore booleans" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 195 - format.json: "uri format" - "all string formats ignore nulls" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s 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" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s 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" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/int/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/properties" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "#/definitions/int/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/1/additionalProperties" 107s # }, 107s # { 107s # "error": "subschemas 0, 1 are not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/int/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/properties" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s # 107s ok 198 - items.json: "a schema given for items" - "valid items" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 199 - items.json: "a schema given for items" - "wrong type of items" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/1", 107s # "keywordLocation": "/items/type" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/1", 107s # "keywordLocation": "/items/type" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 200 - items.json: "a schema given for items" - "ignores non-arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 201 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 202 - items.json: "an array of schemas for items" - "correct types" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 203 - items.json: "an array of schemas for items" - "wrong types" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/0", 107s # "keywordLocation": "/items/0/type" 107s # }, 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "/1", 107s # "keywordLocation": "/items/1/type" 107s # }, 107s # { 107s # "error": "not all items are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/0", 107s # "keywordLocation": "/items/0/type" 107s # }, 107s # { 107s # "error": "not all items are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 204 - items.json: "an array of schemas for items" - "incomplete array of items" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 205 - items.json: "an array of schemas for items" - "array with additional items" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 206 - items.json: "an array of schemas for items" - "empty array" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 207 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 208 - items.json: "items and subitems" - "valid items" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 209 - items.json: "items and subitems" - "too many items" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "additional item not permitted", 107s # "instanceLocation": "/3", 107s # "keywordLocation": "/additionalItems" 107s # }, 107s # { 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "additional item not permitted", 107s # "instanceLocation": "/3", 107s # "keywordLocation": "/additionalItems" 107s # }, 107s # { 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 210 - items.json: "items and subitems" - "too many sub-items" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 107s # "error": "additional item not permitted", 107s # "instanceLocation": "/0/2", 107s # "keywordLocation": "/items/0/$ref/additionalItems" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "/0", 107s # "keywordLocation": "/items/0/$ref/additionalItems" 107s # }, 107s # { 107s # "error": "not all items are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 107s # "error": "additional item not permitted", 107s # "instanceLocation": "/0/2", 107s # "keywordLocation": "/items/0/$ref/additionalItems" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "/0", 107s # "keywordLocation": "/items/0/$ref/additionalItems" 107s # }, 107s # { 107s # "error": "not all items are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 211 - items.json: "items and subitems" - "wrong item" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/item/type", 107s # "error": "got object, not array", 107s # "instanceLocation": "/0", 107s # "keywordLocation": "/items/0/$ref/type" 107s # }, 107s # { 107s # "error": "not all items are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/item/type", 107s # "error": "got object, not array", 107s # "instanceLocation": "/0", 107s # "keywordLocation": "/items/0/$ref/type" 107s # }, 107s # { 107s # "error": "not all items are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 212 - items.json: "items and subitems" - "wrong sub-item" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "/0/0", 107s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "#/definitions/item/items", 107s # "error": "not all items are valid", 107s # "instanceLocation": "/0", 107s # "keywordLocation": "/items/0/$ref/items" 107s # }, 107s # { 107s # "error": "not all items are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "/0/0", 107s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "#/definitions/item/items", 107s # "error": "not all items are valid", 107s # "instanceLocation": "/0", 107s # "keywordLocation": "/items/0/$ref/items" 107s # }, 107s # { 107s # "error": "not all items are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 213 - items.json: "items and subitems" - "fewer items is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 214 - items.json: "nested items" - "valid nested array" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 215 - items.json: "nested items" - "nested array with invalid type" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "/0/0/0/0", 107s # "keywordLocation": "/items/items/items/items/type" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/0/0/0", 107s # "keywordLocation": "/items/items/items/items" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/0/0", 107s # "keywordLocation": "/items/items/items" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/0", 107s # "keywordLocation": "/items/items" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "/0/0/0/0", 107s # "keywordLocation": "/items/items/items/items/type" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/0/0/0", 107s # "keywordLocation": "/items/items/items/items" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/0/0", 107s # "keywordLocation": "/items/items/items" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/0", 107s # "keywordLocation": "/items/items" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 216 - items.json: "nested items" - "not deep enough" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not array", 107s # "instanceLocation": "/0/0/0", 107s # "keywordLocation": "/items/items/items/type" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/0/0", 107s # "keywordLocation": "/items/items/items" 107s # }, 107s # { 107s # "error": "got integer, not array", 107s # "instanceLocation": "/0/1/0", 107s # "keywordLocation": "/items/items/items/type" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/0/1", 107s # "keywordLocation": "/items/items/items" 107s # }, 107s # { 107s # "error": "got integer, not array", 107s # "instanceLocation": "/0/2/0", 107s # "keywordLocation": "/items/items/items/type" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/0/2", 107s # "keywordLocation": "/items/items/items" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/0", 107s # "keywordLocation": "/items/items" 107s # }, 107s # { 107s # "error": "got integer, not array", 107s # "instanceLocation": "/1/0/0", 107s # "keywordLocation": "/items/items/items/type" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/1/0", 107s # "keywordLocation": "/items/items/items" 107s # }, 107s # { 107s # "error": "got integer, not array", 107s # "instanceLocation": "/1/1/0", 107s # "keywordLocation": "/items/items/items/type" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/1/1", 107s # "keywordLocation": "/items/items/items" 107s # }, 107s # { 107s # "error": "got integer, not array", 107s # "instanceLocation": "/1/2/0", 107s # "keywordLocation": "/items/items/items/type" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/1/2", 107s # "keywordLocation": "/items/items/items" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/1", 107s # "keywordLocation": "/items/items" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not array", 107s # "instanceLocation": "/0/0/0", 107s # "keywordLocation": "/items/items/items/type" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/0/0", 107s # "keywordLocation": "/items/items/items" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/0", 107s # "keywordLocation": "/items/items" 107s # }, 107s # { 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 217 - items.json: "items with null instance elements" - "allows null elements" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 218 - items.json: "array-form items with null instance elements" - "allows null elements" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 219 - maxItems.json: "maxItems validation" - "shorter is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 220 - maxItems.json: "maxItems validation" - "exact length is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 221 - maxItems.json: "maxItems validation" - "too long is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "array has more than 2 items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maxItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "array has more than 2 items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maxItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 222 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 223 - maxLength.json: "maxLength validation" - "shorter is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 224 - maxLength.json: "maxLength validation" - "exact length is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 225 - maxLength.json: "maxLength validation" - "too long is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "length is greater than 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maxLength" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "length is greater than 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maxLength" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 226 - maxLength.json: "maxLength validation" - "ignores non-strings" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 227 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 228 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 229 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 230 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object has more than 2 properties", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maxProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object has more than 2 properties", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maxProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 231 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 232 - maxProperties.json: "maxProperties validation" - "ignores strings" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 233 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 234 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 235 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object has more than 0 property", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maxProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object has more than 0 property", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maxProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s # 107s ok 236 - maximum.json: "maximum validation" - "below the maximum is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 237 - maximum.json: "maximum validation" - "boundary point is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 238 - maximum.json: "maximum validation" - "above the maximum is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is greater than 3", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maximum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is greater than 3", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maximum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 239 - maximum.json: "maximum validation" - "ignores non-numbers" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 240 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 241 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 242 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 243 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is greater than 300", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maximum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is greater than 300", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maximum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 244 - maximum.json: "maximum validation (explicit false exclusivity)" - "below the maximum is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 245 - maximum.json: "maximum validation (explicit false exclusivity)" - "boundary point is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 246 - maximum.json: "maximum validation (explicit false exclusivity)" - "above the maximum is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is greater than 3", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maximum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is greater than 3", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maximum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 247 - maximum.json: "maximum validation (explicit false exclusivity)" - "ignores non-numbers" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 248 - maximum.json: "exclusiveMaximum validation" - "below the maximum is still valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 249 - maximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is greater than or equal to 3", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maximum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is greater than or equal to 3", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maximum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s # 107s ok 250 - minItems.json: "minItems validation" - "longer is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 251 - minItems.json: "minItems validation" - "exact length is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 252 - minItems.json: "minItems validation" - "too short is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "array has fewer than 1 item", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "array has fewer than 1 item", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 253 - minItems.json: "minItems validation" - "ignores non-arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 254 - minLength.json: "minLength validation" - "longer is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 255 - minLength.json: "minLength validation" - "exact length is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 256 - minLength.json: "minLength validation" - "too short is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "length is less than 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minLength" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "length is less than 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minLength" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 257 - minLength.json: "minLength validation" - "ignores non-strings" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 258 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "length is less than 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minLength" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "length is less than 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minLength" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s # 107s ok 259 - minProperties.json: "minProperties validation" - "longer is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 260 - minProperties.json: "minProperties validation" - "exact length is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 261 - minProperties.json: "minProperties validation" - "too short is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object has fewer than 1 property", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object has fewer than 1 property", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 262 - minProperties.json: "minProperties validation" - "ignores arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 263 - minProperties.json: "minProperties validation" - "ignores strings" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 264 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 265 - minimum.json: "minimum validation" - "above the minimum is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 266 - minimum.json: "minimum validation" - "boundary point is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 267 - minimum.json: "minimum validation" - "below the minimum is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is less than 1.1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minimum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is less than 1.1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minimum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 268 - minimum.json: "minimum validation" - "ignores non-numbers" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 269 - minimum.json: "minimum validation (explicit false exclusivity)" - "above the minimum is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 270 - minimum.json: "minimum validation (explicit false exclusivity)" - "boundary point is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 271 - minimum.json: "minimum validation (explicit false exclusivity)" - "below the minimum is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is less than 1.1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minimum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is less than 1.1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minimum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 272 - minimum.json: "minimum validation (explicit false exclusivity)" - "ignores non-numbers" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 273 - minimum.json: "exclusiveMinimum validation" - "above the minimum is still valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 274 - minimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is less than or equal to 1.1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minimum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is less than or equal to 1.1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minimum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 275 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 276 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 277 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 278 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 279 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is less than -2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minimum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is less than -2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minimum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 280 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is less than -2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minimum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is less than -2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minimum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 281 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 282 - multipleOf.json: "by int" - "int by int" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 283 - multipleOf.json: "by int" - "int by int fail" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/multipleOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/multipleOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 284 - multipleOf.json: "by int" - "ignores non-numbers" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 285 - multipleOf.json: "by number" - "zero is multiple of anything" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 286 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 287 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 1.5", 107s # "instanceLocation": "", 107s # "keywordLocation": "/multipleOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 1.5", 107s # "instanceLocation": "", 107s # "keywordLocation": "/multipleOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 288 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 289 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 0.0001", 107s # "instanceLocation": "", 107s # "keywordLocation": "/multipleOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is not a multiple of 0.0001", 107s # "instanceLocation": "", 107s # "keywordLocation": "/multipleOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 290 - multipleOf.json: "float division = inf" - "invalid, but naive implementations may raise an overflow error" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # }, 107s # { 107s # "error": "value is not a multiple of 0.123456789", 107s # "instanceLocation": "", 107s # "keywordLocation": "/multipleOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 291 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 292 - not.json: "not" - "allowed" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 293 - not.json: "not" - "disallowed" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 294 - not.json: "not multiple types" - "valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 295 - not.json: "not multiple types" - "mismatch" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 296 - not.json: "not multiple types" - "other mismatch" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 297 - not.json: "not more complex schema" - "match" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 298 - not.json: "not more complex schema" - "other match" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 299 - not.json: "not more complex schema" - "mismatch" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 300 - not.json: "forbidden property" - "property present" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/properties/foo/not" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/properties/foo/not" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 301 - not.json: "forbidden property" - "property absent" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 302 - not.json: "forbid everything with empty schema" - "number is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 303 - not.json: "forbid everything with empty schema" - "string is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 304 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 305 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 306 - not.json: "forbid everything with empty schema" - "null is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 307 - not.json: "forbid everything with empty schema" - "object is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 308 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 309 - not.json: "forbid everything with empty schema" - "array is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 310 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "subschema is valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/not" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 311 - not.json: "double negation" - "any value is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 312 - oneOf.json: "oneOf" - "first oneOf valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 313 - oneOf.json: "oneOf" - "second oneOf valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 314 - oneOf.json: "oneOf" - "both oneOf valid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "multiple subschemas are valid: 0, 1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "multiple subschemas are valid: 0, 1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 315 - oneOf.json: "oneOf" - "neither oneOf valid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/0/type" 107s # }, 107s # { 107s # "error": "value is less than 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/1/minimum" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/0/type" 107s # }, 107s # { 107s # "error": "value is less than 2", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/1/minimum" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 316 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # }, 107s # { 107s # "error": "multiple subschemas are valid: 0, 1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 317 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 318 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "multiple subschemas are valid: 0, 1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "multiple subschemas are valid: 0, 1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 319 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 320 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 321 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "multiple subschemas are valid: 0, 1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "multiple subschemas are valid: 0, 1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 322 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/oneOf/0/properties/bar/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/0/properties" 107s # }, 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/oneOf/1/properties/foo/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/1/properties" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/oneOf/0/properties/bar/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/0/properties" 107s # }, 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/oneOf/1/properties/foo/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/1/properties" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 323 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 324 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "multiple subschemas are valid: 0, 1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "multiple subschemas are valid: 0, 1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 325 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/0/required" 107s # }, 107s # { 107s # "error": "object is missing properties: foo, baz", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/1/required" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/0/required" 107s # }, 107s # { 107s # "error": "object is missing properties: foo, baz", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/1/required" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 326 - oneOf.json: "oneOf with required" - "first valid - valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 327 - oneOf.json: "oneOf with required" - "second valid - valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 328 - oneOf.json: "oneOf with required" - "both valid - invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "multiple subschemas are valid: 0, 1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "multiple subschemas are valid: 0, 1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 329 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 330 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 331 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "multiple subschemas are valid: 0, 1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "multiple subschemas are valid: 0, 1", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 332 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/0/required" 107s # }, 107s # { 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/1/required" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: bar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/0/required" 107s # }, 107s # { 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/1/required" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 333 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 334 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/0/oneOf/0/type" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/0/oneOf" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/0/oneOf/0/type" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf/0/oneOf" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/oneOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s # 107s ok 335 - pattern.json: "pattern validation" - "a matching pattern is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 336 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 337 - pattern.json: "pattern validation" - "ignores booleans" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 338 - pattern.json: "pattern validation" - "ignores integers" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 339 - pattern.json: "pattern validation" - "ignores floats" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 340 - pattern.json: "pattern validation" - "ignores objects" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 341 - pattern.json: "pattern validation" - "ignores arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 342 - pattern.json: "pattern validation" - "ignores null" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 343 - pattern.json: "pattern is not anchored" - "matches a substring" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 344 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 345 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 346 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/patternProperties/f.*o/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/patternProperties/f.*o/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 347 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/patternProperties/f.*o/type" 107s # }, 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/foooooo", 107s # "keywordLocation": "/patternProperties/f.*o/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/patternProperties/f.*o/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 348 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 349 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 350 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 351 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 352 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 353 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 354 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/a", 107s # "keywordLocation": "/patternProperties/a*/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/a", 107s # "keywordLocation": "/patternProperties/a*/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 355 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is greater than 20", 107s # "instanceLocation": "/aaaa", 107s # "keywordLocation": "/patternProperties/aaa*/maximum" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is greater than 20", 107s # "instanceLocation": "/aaaa", 107s # "keywordLocation": "/patternProperties/aaa*/maximum" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 356 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/aaa", 107s # "keywordLocation": "/patternProperties/a*/type" 107s # }, 107s # { 107s # "error": "value is greater than 20", 107s # "instanceLocation": "/aaaa", 107s # "keywordLocation": "/patternProperties/aaa*/maximum" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/aaa", 107s # "keywordLocation": "/patternProperties/a*/type" 107s # }, 107s # { 107s # "error": "value is greater than 20", 107s # "instanceLocation": "/aaaa", 107s # "keywordLocation": "/patternProperties/aaa*/maximum" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 357 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 358 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not boolean", 107s # "instanceLocation": "/a31b", 107s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not boolean", 107s # "instanceLocation": "/a31b", 107s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 359 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 360 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "/a_X_3", 107s # "keywordLocation": "/patternProperties/X_/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "/a_X_3", 107s # "keywordLocation": "/patternProperties/X_/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 361 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 362 - properties.json: "object properties validation" - "both properties present and valid is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 363 - properties.json: "object properties validation" - "one property invalid is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not string", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/properties/bar/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not string", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/properties/bar/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 364 - properties.json: "object properties validation" - "both properties invalid is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not string", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/properties/bar/type" 107s # }, 107s # { 107s # "error": "got array, not integer", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/properties/foo/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not string", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/properties/bar/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 365 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 366 - properties.json: "object properties validation" - "ignores arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 367 - properties.json: "object properties validation" - "ignores other non-objects" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 368 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 369 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "array has more than 3 items", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/properties/foo/maxItems" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "array has more than 3 items", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/properties/foo/maxItems" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 370 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "array has fewer than 2 items", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/patternProperties/f.o/minItems" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "array has fewer than 2 items", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/patternProperties/f.o/minItems" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 371 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 372 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "array has fewer than 2 items", 107s # "instanceLocation": "/fxo", 107s # "keywordLocation": "/patternProperties/f.o/minItems" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "array has fewer than 2 items", 107s # "instanceLocation": "/fxo", 107s # "keywordLocation": "/patternProperties/f.o/minItems" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 373 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 374 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 375 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/quux", 107s # "keywordLocation": "/additionalProperties/type" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/quux", 107s # "keywordLocation": "/additionalProperties/type" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 376 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 377 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "/foo\tbar", 107s # "keywordLocation": "/properties/foo\tbar/type" 107s # }, 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "/foo\nbar", 107s # "keywordLocation": "/properties/foo\nbar/type" 107s # }, 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "/foo\fbar", 107s # "keywordLocation": "/properties/foo\fbar/type" 107s # }, 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "/foo\rbar", 107s # "keywordLocation": "/properties/foo\rbar/type" 107s # }, 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "/foo\"bar", 107s # "keywordLocation": "/properties/foo\"bar/type" 107s # }, 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "/foo\\bar", 107s # "keywordLocation": "/properties/foo\\bar/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "/foo\tbar", 107s # "keywordLocation": "/properties/foo\tbar/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 378 - properties.json: "properties with null valued instance properties" - "allows null values" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 379 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 380 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 381 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 382 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "/__proto__", 107s # "keywordLocation": "/properties/__proto__/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "/__proto__", 107s # "keywordLocation": "/properties/__proto__/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 383 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "/toString/length", 107s # "keywordLocation": "/properties/toString/properties/length/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "/toString", 107s # "keywordLocation": "/properties/toString/properties" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "/toString/length", 107s # "keywordLocation": "/properties/toString/properties/length/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "/toString", 107s # "keywordLocation": "/properties/toString/properties" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 384 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not number", 107s # "instanceLocation": "/constructor", 107s # "keywordLocation": "/properties/constructor/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not number", 107s # "instanceLocation": "/constructor", 107s # "keywordLocation": "/properties/constructor/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 385 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 386 - ref.json: "root pointer ref" - "match" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 387 - ref.json: "root pointer ref" - "recursive match" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 388 - ref.json: "root pointer ref" - "mismatch" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 389 - ref.json: "root pointer ref" - "recursive mismatch" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/additionalProperties", 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/foo/bar", 107s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "#/additionalProperties", 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/additionalProperties", 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/foo/bar", 107s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "#/additionalProperties", 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 390 - ref.json: "relative pointer ref to object" - "match" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 391 - ref.json: "relative pointer ref to object" - "mismatch" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/properties/foo/type", 107s # "error": "got boolean, not integer", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/properties/bar/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/properties/foo/type", 107s # "error": "got boolean, not integer", 107s # "instanceLocation": "/bar", 107s # "keywordLocation": "/properties/bar/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 392 - ref.json: "relative pointer ref to array" - "match array" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 393 - ref.json: "relative pointer ref to array" - "mismatch array" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/items/0/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "/1", 107s # "keywordLocation": "/items/1/$ref/type" 107s # }, 107s # { 107s # "error": "not all items are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/items/0/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "/1", 107s # "keywordLocation": "/items/1/$ref/type" 107s # }, 107s # { 107s # "error": "not all items are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 394 - ref.json: "escaped pointer ref" - "slash invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "/slash", 107s # "keywordLocation": "/properties/slash/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "/slash", 107s # "keywordLocation": "/properties/slash/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 395 - ref.json: "escaped pointer ref" - "tilde invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "/tilde", 107s # "keywordLocation": "/properties/tilde/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "/tilde", 107s # "keywordLocation": "/properties/tilde/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 396 - ref.json: "escaped pointer ref" - "percent invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "/percent", 107s # "keywordLocation": "/properties/percent/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "/percent", 107s # "keywordLocation": "/properties/percent/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 397 - ref.json: "escaped pointer ref" - "slash valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 398 - ref.json: "escaped pointer ref" - "tilde valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 399 - ref.json: "escaped pointer ref" - "percent valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 400 - ref.json: "nested refs" - "nested ref valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 401 - ref.json: "nested refs" - "nested ref invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/a/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/a/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 402 - ref.json: "ref overrides any sibling keywords" - "ref valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 403 - ref.json: "ref overrides any sibling keywords" - "ref valid, maxItems ignored" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 404 - ref.json: "ref overrides any sibling keywords" - "ref invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/reffed/type", 107s # "error": "got string, not array", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/properties/foo/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/reffed/type", 107s # "error": "got string, not array", 107s # "instanceLocation": "/foo", 107s # "keywordLocation": "/properties/foo/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 405 - ref.json: "$ref prevents a sibling id from changing the base uri" - "$ref resolves to /definitions/base_foo, data does not validate" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 406 - ref.json: "$ref prevents a sibling id from changing the base uri" - "$ref resolves to /definitions/base_foo, data validates" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 407 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 408 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger/minimum", 107s # "error": "value is less than 0", 107s # "instanceLocation": "/minLength", 107s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0/allOf", 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "/minLength", 107s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/$ref/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger/minimum", 107s # "error": "value is less than 0", 107s # "instanceLocation": "/minLength", 107s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0/allOf", 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "/minLength", 107s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/$ref/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 409 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 410 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "/$ref", 107s # "keywordLocation": "/properties/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "/$ref", 107s # "keywordLocation": "/properties/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 411 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 412 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/is-string/type", 107s # "error": "got integer, not string", 107s # "instanceLocation": "/$ref", 107s # "keywordLocation": "/properties/$ref/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/is-string/type", 107s # "error": "got integer, not string", 107s # "instanceLocation": "/$ref", 107s # "keywordLocation": "/properties/$ref/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 413 - ref.json: "Recursive references between schemas" - "valid tree" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 414 - ref.json: "Recursive references between schemas" - "invalid tree" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 107s # "error": "got string, not number", 107s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 107s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "/nodes/0/subtree/nodes/0", 107s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/nodes/0/subtree/nodes", 107s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "/nodes/0/subtree", 107s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "/nodes/0", 107s # "keywordLocation": "/properties/nodes/items/$ref/properties" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/nodes", 107s # "keywordLocation": "/properties/nodes/items" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 107s # "error": "got string, not number", 107s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 107s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "/nodes/0/subtree/nodes/0", 107s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/nodes/0/subtree/nodes", 107s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "/nodes/0/subtree", 107s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "/nodes/0", 107s # "keywordLocation": "/properties/nodes/items/$ref/properties" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/nodes", 107s # "keywordLocation": "/properties/nodes/items" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 415 - ref.json: "refs with quote" - "object with numbers is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 416 - ref.json: "refs with quote" - "object with strings is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 107s # "error": "got string, not number", 107s # "instanceLocation": "/foo\"bar", 107s # "keywordLocation": "/properties/foo\"bar/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 107s # "error": "got string, not number", 107s # "instanceLocation": "/foo\"bar", 107s # "keywordLocation": "/properties/foo\"bar/$ref/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 417 - ref.json: "Location-independent identifier" - "match" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 418 - ref.json: "Location-independent identifier" - "mismatch" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/A/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/$ref/type" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/A/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/$ref/type" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 419 - ref.json: "Location-independent identifier with base URI change in subschema" - "match" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 420 - ref.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s 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" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/enum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 422 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 423 - ref.json: "id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 424 - ref.json: "id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 425 - ref.json: "id with file URI still resolves pointers - *nix" - "number is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 426 - ref.json: "id with file URI still resolves pointers - *nix" - "non-number is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 427 - ref.json: "id with file URI still resolves pointers - windows" - "number is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 428 - ref.json: "id with file URI still resolves pointers - windows" - "non-number is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 429 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 430 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions//definitions//type", 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/$ref/type" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions//definitions//type", 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf/0/$ref/type" 107s # }, 107s # { 107s # "error": "subschema 0 is not valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/allOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s # 107s ok 431 - refRemote.json: "remote ref" - "remote ref valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 432 - refRemote.json: "remote ref" - "remote ref invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/$ref/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/$ref/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 433 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 434 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/draft4/subSchemas.json#/definitions/integer/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/$ref/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/draft4/subSchemas.json#/definitions/integer/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/$ref/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 435 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 436 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/draft4/subSchemas.json#/definitions/integer/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/$ref/$ref/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/draft4/subSchemas.json#/definitions/integer/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/$ref/$ref/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 437 - refRemote.json: "base URI change" - "base URI change ref valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 438 - refRemote.json: "base URI change" - "base URI change ref invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "/0/0", 107s # "keywordLocation": "/items/items/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/0", 107s # "keywordLocation": "/items/items" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "/0/0", 107s # "keywordLocation": "/items/items/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/0", 107s # "keywordLocation": "/items/items" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/items" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 439 - refRemote.json: "base URI change - change folder" - "number is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 440 - refRemote.json: "base URI change - change folder" - "string is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "/list/0", 107s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/list", 107s # "keywordLocation": "/properties/list/$ref/items" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "/list/0", 107s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/list", 107s # "keywordLocation": "/properties/list/$ref/items" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 441 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 442 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "/list/0", 107s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/list", 107s # "keywordLocation": "/properties/list/$ref/items" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "/list/0", 107s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 107s # "error": "subschema is not valid against all items", 107s # "instanceLocation": "/list", 107s # "keywordLocation": "/properties/list/$ref/items" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 443 - refRemote.json: "root ref in remote ref" - "string is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 444 - refRemote.json: "root ref in remote ref" - "null is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 445 - refRemote.json: "root ref in remote ref" - "object is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/definitions/orNull/anyOf/0/type", 107s # "error": "got object, not null", 107s # "instanceLocation": "/name", 107s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/type", 107s # "error": "got object, not string", 107s # "instanceLocation": "/name", 107s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/definitions/orNull/anyOf", 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "/name", 107s # "keywordLocation": "/properties/name/$ref/anyOf" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/definitions/orNull/anyOf/0/type", 107s # "error": "got object, not null", 107s # "instanceLocation": "/name", 107s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/type", 107s # "error": "got object, not string", 107s # "instanceLocation": "/name", 107s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/definitions/orNull/anyOf", 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "/name", 107s # "keywordLocation": "/properties/name/$ref/anyOf" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/properties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 446 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 447 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/draft4/locationIndependentIdentifier.json#/definitions/A/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/$ref/$ref/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "http://localhost:1234/draft4/locationIndependentIdentifier.json#/definitions/A/type", 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/$ref/$ref/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s # 107s ok 448 - required.json: "required validation" - "present required property is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 449 - required.json: "required validation" - "non-present required property is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing property: foo", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 450 - required.json: "required validation" - "ignores arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 451 - required.json: "required validation" - "ignores strings" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 452 - required.json: "required validation" - "ignores other non-objects" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 453 - required.json: "required default validation" - "not required by default" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 454 - required.json: "required with escaped characters" - "object with all properties present is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 455 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 456 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 457 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 458 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing properties: __proto__, toString, constructor", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing properties: __proto__, toString, constructor", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 459 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing properties: toString, constructor", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing properties: toString, constructor", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 460 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing properties: __proto__, constructor", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing properties: __proto__, constructor", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 461 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing properties: __proto__, toString", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "object is missing properties: __proto__, toString", 107s # "instanceLocation": "", 107s # "keywordLocation": "/required" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 462 - required.json: "required properties whose names are Javascript object property names" - "all present" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 463 - type.json: "integer type matches integers" - "an integer is an integer" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 464 - type.json: "integer type matches integers" - "a float is not an integer" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 465 - type.json: "integer type matches integers" - "a string is not an integer" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 466 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 467 - type.json: "integer type matches integers" - "an object is not an integer" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 468 - type.json: "integer type matches integers" - "an array is not an integer" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got array, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got array, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 469 - type.json: "integer type matches integers" - "a boolean is not an integer" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got boolean, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got boolean, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 470 - type.json: "integer type matches integers" - "null is not an integer" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 471 - type.json: "number type matches numbers" - "an integer is a number" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 472 - type.json: "number type matches numbers" - "a float with zero fractional part is a number" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 473 - type.json: "number type matches numbers" - "a float is a number" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 474 - type.json: "number type matches numbers" - "a string is not a number" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 475 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 476 - type.json: "number type matches numbers" - "an object is not a number" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 477 - type.json: "number type matches numbers" - "an array is not a number" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got array, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got array, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 478 - type.json: "number type matches numbers" - "a boolean is not a number" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got boolean, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got boolean, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 479 - type.json: "number type matches numbers" - "null is not a number" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not number", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 480 - type.json: "string type matches strings" - "1 is not a string" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 481 - type.json: "string type matches strings" - "a float is not a string" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 482 - type.json: "string type matches strings" - "a string is a string" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 483 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 484 - type.json: "string type matches strings" - "an empty string is still a string" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 485 - type.json: "string type matches strings" - "an object is not a string" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 486 - type.json: "string type matches strings" - "an array is not a string" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got array, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got array, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 487 - type.json: "string type matches strings" - "a boolean is not a string" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got boolean, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got boolean, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 488 - type.json: "string type matches strings" - "null is not a string" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 489 - type.json: "object type matches objects" - "an integer is not an object" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 490 - type.json: "object type matches objects" - "a float is not an object" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 491 - type.json: "object type matches objects" - "a string is not an object" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 492 - type.json: "object type matches objects" - "an object is an object" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 493 - type.json: "object type matches objects" - "an array is not an object" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got array, not object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got array, not object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 494 - type.json: "object type matches objects" - "a boolean is not an object" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got boolean, not object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got boolean, not object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 495 - type.json: "object type matches objects" - "null is not an object" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 496 - type.json: "array type matches arrays" - "an integer is not an array" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not array", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not array", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 497 - type.json: "array type matches arrays" - "a float is not an array" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not array", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not array", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 498 - type.json: "array type matches arrays" - "a string is not an array" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not array", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not array", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 499 - type.json: "array type matches arrays" - "an object is not an array" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not array", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not array", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 500 - type.json: "array type matches arrays" - "an array is an array" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 501 - type.json: "array type matches arrays" - "a boolean is not an array" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got boolean, not array", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got boolean, not array", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 502 - type.json: "array type matches arrays" - "null is not an array" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not array", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not array", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 503 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not boolean", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not boolean", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 504 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not boolean", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not boolean", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 505 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not boolean", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not boolean", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 506 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not boolean", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not boolean", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 507 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not boolean", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not boolean", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 508 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not boolean", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not boolean", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 509 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got array, not boolean", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got array, not boolean", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 510 - type.json: "boolean type matches booleans" - "true is a boolean" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 511 - type.json: "boolean type matches booleans" - "false is a boolean" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 512 - type.json: "boolean type matches booleans" - "null is not a boolean" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not boolean", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not boolean", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 513 - type.json: "null type matches only the null object" - "an integer is not null" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 514 - type.json: "null type matches only the null object" - "a float is not null" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 515 - type.json: "null type matches only the null object" - "zero is not null" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 516 - type.json: "null type matches only the null object" - "a string is not null" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 517 - type.json: "null type matches only the null object" - "an empty string is not null" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 518 - type.json: "null type matches only the null object" - "an object is not null" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 519 - type.json: "null type matches only the null object" - "an array is not null" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got array, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got array, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 520 - type.json: "null type matches only the null object" - "true is not null" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got boolean, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got boolean, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 521 - type.json: "null type matches only the null object" - "false is not null" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got boolean, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got boolean, not null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 522 - type.json: "null type matches only the null object" - "null is null" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 523 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 524 - type.json: "multiple types can be specified in an array" - "a string is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 525 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not one of integer, string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not one of integer, string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 526 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not one of integer, string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got object, not one of integer, string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 527 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got array, not one of integer, string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got array, not one of integer, string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 528 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got boolean, not one of integer, string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got boolean, not one of integer, string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 529 - type.json: "multiple types can be specified in an array" - "null is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not one of integer, string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not one of integer, string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 530 - type.json: "type as array with one item" - "string is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 531 - type.json: "type as array with one item" - "number is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 532 - type.json: "type: array or object" - "array is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 533 - type.json: "type: array or object" - "object is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 534 - type.json: "type: array or object" - "number is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not one of array, object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not one of array, object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 535 - type.json: "type: array or object" - "string is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not one of array, object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not one of array, object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 536 - type.json: "type: array or object" - "null is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not one of array, object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got null, not one of array, object", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 537 - type.json: "type: array, object or null" - "array is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 538 - type.json: "type: array, object or null" - "object is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 539 - type.json: "type: array, object or null" - "null is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 540 - type.json: "type: array, object or null" - "number is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not one of array, object, null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not one of array, object, null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 541 - type.json: "type: array, object or null" - "string is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not one of array, object, null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not one of array, object, null", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s # 107s ok 542 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 543 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 544 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 2 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 2 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 545 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 546 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 547 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 548 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 549 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 2 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 2 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 550 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 551 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 552 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 553 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 554 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 555 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 556 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 557 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 2 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 2 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 558 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 559 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 560 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 561 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 562 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 563 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 564 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 565 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 4 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 4 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 566 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 567 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 568 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 569 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 570 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 571 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 572 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 573 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 574 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 575 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 576 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 2 and 3 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 2 and 3 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 577 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 2 and 3 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 2 and 3 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 578 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 579 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 580 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 581 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "items at indices 0 and 1 are not unique", 107s # "instanceLocation": "", 107s # "keywordLocation": "/uniqueItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 582 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "additional item not permitted", 107s # "instanceLocation": "/2", 107s # "keywordLocation": "/additionalItems" 107s # }, 107s # { 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "additional item not permitted", 107s # "instanceLocation": "/2", 107s # "keywordLocation": "/additionalItems" 107s # }, 107s # { 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 583 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 584 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 585 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 586 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 587 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 588 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 589 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 590 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 591 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 592 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 593 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 594 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 595 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 596 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 597 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 598 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 599 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 600 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 601 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 602 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 603 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 604 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 605 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 606 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 607 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 608 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 609 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 610 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "additional item not permitted", 107s # "instanceLocation": "/2", 107s # "keywordLocation": "/additionalItems" 107s # }, 107s # { 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "additional item not permitted", 107s # "instanceLocation": "/2", 107s # "keywordLocation": "/additionalItems" 107s # }, 107s # { 107s # "error": "subschema is not valid against all additional items", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalItems" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s # 107s ok 611 - optional/bignum.json: "integer" - "a bignum is an integer" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 612 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 613 - optional/bignum.json: "number" - "a bignum is a number" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 614 - optional/bignum.json: "number" - "a negative bignum is a number" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 615 - optional/bignum.json: "string" - "a bignum is not a string" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got integer, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 616 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 617 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maximum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 107s # "instanceLocation": "", 107s # "keywordLocation": "/maximum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 618 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 619 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minimum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 107s # "instanceLocation": "", 107s # "keywordLocation": "/minimum" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s # 107s ok 620 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 621 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 622 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 623 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 624 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 625 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 626 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 627 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 628 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true # 107s 1..1 107s } 107s 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" 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s not ok 1 - evaluation result is incorrect # 107s # Failed test (with amnesty) 'evaluation result is incorrect' 107s # at t/zzz-acceptance-draft4.t line 51. 107s # expected false; got true 107s # schema: { 107s # "pattern": "^\\d$", 107s # "type": "string" 107s # } 107s # data: "߀" 107s # result: { 107s # "valid": true 107s # } 107s 1..1 107s } 107s 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" 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s not ok 1 - evaluation result is incorrect # 107s # Failed test (with amnesty) 'evaluation result is incorrect' 107s # at t/zzz-acceptance-draft4.t line 51. 107s # expected false; got true 107s # schema: { 107s # "pattern": "^\\d$", 107s # "type": "string" 107s # } 107s # data: "߀" 107s # result: { 107s # "valid": true 107s # } 107s 1..1 107s } 107s 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" 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false # 107s 1..1 107s } 107s 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" 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s not ok 1 - evaluation result is incorrect # 107s # Failed test (with amnesty) 'evaluation result is incorrect' 107s # at t/zzz-acceptance-draft4.t line 51. 107s # expected true; got false 107s # schema: { 107s # "pattern": "^\\D$", 107s # "type": "string" 107s # } 107s # data: "߀" 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s 1..1 107s } 107s 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" 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s not ok 1 - evaluation result is incorrect # 107s # Failed test (with amnesty) 'evaluation result is incorrect' 107s # at t/zzz-acceptance-draft4.t line 51. 107s # expected true; got false 107s # schema: { 107s # "pattern": "^\\D$", 107s # "type": "string" 107s # } 107s # data: "߀" 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s 1..1 107s } 107s ok 634 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true # 107s 1..1 107s } 107s 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" 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s not ok 1 - evaluation result is incorrect # 107s # Failed test (with amnesty) 'evaluation result is incorrect' 107s # at t/zzz-acceptance-draft4.t line 51. 107s # expected false; got true 107s # schema: { 107s # "pattern": "^\\w$", 107s # "type": "string" 107s # } 107s # data: "é" 107s # result: { 107s # "valid": true 107s # } 107s 1..1 107s } 107s 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" 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false # 107s 1..1 107s } 107s 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" 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s not ok 1 - evaluation result is incorrect # 107s # Failed test (with amnesty) 'evaluation result is incorrect' 107s # at t/zzz-acceptance-draft4.t line 51. 107s # expected true; got false 107s # schema: { 107s # "pattern": "^\\W$", 107s # "type": "string" 107s # } 107s # data: "é" 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s 1..1 107s } 107s ok 638 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 639 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 640 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 641 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 642 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 643 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s not ok 1 - evaluation result is incorrect # 107s # Failed test (with amnesty) 'evaluation result is incorrect' 107s # at t/zzz-acceptance-draft4.t line 51. 107s # expected true; got false 107s # schema: { 107s # "pattern": "^\\s$", 107s # "type": "string" 107s # } 107s # data: "" 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s 1..1 107s } 107s ok 644 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 645 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 646 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 647 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 648 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 649 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 650 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 651 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 652 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 653 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s 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" 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s not ok 1 - evaluation result is incorrect # 107s # Failed test (with amnesty) 'evaluation result is incorrect' 107s # at t/zzz-acceptance-draft4.t line 51. 107s # expected false; got true 107s # schema: { 107s # "pattern": "^\\S$", 107s # "type": "string" 107s # } 107s # data: "" 107s # result: { 107s # "valid": true 107s # } 107s 1..1 107s } 107s ok 655 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 656 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 657 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 658 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 659 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 660 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 661 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 662 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 663 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 664 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s 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" 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s not ok 1 - evaluation result is incorrect # 107s # Failed test (with amnesty) 'evaluation result is incorrect' 107s # at t/zzz-acceptance-draft4.t line 51. 107s # expected false; got true 107s # schema: { 107s # "pattern": "\\wcole" 107s # } 107s # 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." 107s # result: { 107s # "valid": true 107s # } 107s 1..1 107s } 107s 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" 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s not ok 1 - evaluation result is incorrect # 107s # Failed test (with amnesty) 'evaluation result is incorrect' 107s # at t/zzz-acceptance-draft4.t line 51. 107s # expected false; got true 107s # schema: { 107s # "pattern": "\\wcole" 107s # } 107s # 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." 107s # result: { 107s # "valid": true 107s # } 107s 1..1 107s } 107s ok 667 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 668 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 669 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 670 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 671 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 672 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s 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" 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s not ok 1 - evaluation result is incorrect # 107s # Failed test (with amnesty) 'evaluation result is incorrect' 107s # at t/zzz-acceptance-draft4.t line 51. 107s # expected false; got true 107s # schema: { 107s # "pattern": "^\\d+$" 107s # } 107s # data: "৪২" 107s # result: { 107s # "valid": true 107s # } 107s 1..1 107s } 107s ok 674 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 675 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 676 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 677 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 678 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 679 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 680 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/L'ÉCOLE", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/L'ÉCOLE", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 681 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s 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" 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s not ok 1 - evaluation result is incorrect # 107s # Failed test (with amnesty) 'evaluation result is incorrect' 107s # at t/zzz-acceptance-draft4.t line 51. 107s # expected false; got true 107s # schema: { 107s # "additionalProperties": false, 107s # "patternProperties": { 107s # "\\wcole": {} 107s # }, 107s # "type": "object" 107s # } 107s # data: { 107s # "l'école": "pas de vraie vie" 107s # } 107s # result: { 107s # "valid": true 107s # } 107s 1..1 107s } 107s 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" 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s not ok 1 - evaluation result is incorrect # 107s # Failed test (with amnesty) 'evaluation result is incorrect' 107s # at t/zzz-acceptance-draft4.t line 51. 107s # expected false; got true 107s # schema: { 107s # "additionalProperties": false, 107s # "patternProperties": { 107s # "\\wcole": {} 107s # }, 107s # "type": "object" 107s # } 107s # data: { 107s # "l'école": "pas de vraie vie" 107s # } 107s # result: { 107s # "valid": true 107s # } 107s 1..1 107s } 107s ok 684 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/L'ÉCOLE", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/L'ÉCOLE", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 685 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/l'école", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/l'école", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 686 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/l'école", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/l'école", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 687 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 688 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 689 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/-%#", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/-%#", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s 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" 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s not ok 1 - evaluation result is incorrect # 107s # Failed test (with amnesty) 'evaluation result is incorrect' 107s # at t/zzz-acceptance-draft4.t line 51. 107s # expected false; got true 107s # schema: { 107s # "additionalProperties": false, 107s # "patternProperties": { 107s # "^\\d+$": {} 107s # }, 107s # "type": "object" 107s # } 107s # data: { 107s # "৪২": "khajit has wares if you have coin" 107s # } 107s # result: { 107s # "valid": true 107s # } 107s 1..1 107s } 107s ok 691 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 692 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/-%#", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "additional property not permitted", 107s # "instanceLocation": "/-%#", 107s # "keywordLocation": "/additionalProperties" 107s # }, 107s # { 107s # "error": "not all additional properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/additionalProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 693 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 694 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s # 107s ok 695 - optional/id.json: "id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 696 - optional/id.json: "id inside an enum is not a real identifier" - "match $ref to id" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 697 - optional/id.json: "id inside an enum is not a real identifier" - "no match on enum or $ref to id" { 107s # result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/$ref/enum" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "https://localhost:1234/my_identifier.json#/type", 107s # "error": "got integer, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/1/$ref/type" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 107s # "error": "value does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/0/$ref/enum" 107s # }, 107s # { 107s # "absoluteKeywordLocation": "https://localhost:1234/my_identifier.json#/type", 107s # "error": "got integer, not string", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf/1/$ref/type" 107s # }, 107s # { 107s # "error": "no subschemas are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/anyOf" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s # 107s ok 698 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 699 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 700 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 701 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 702 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 703 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 704 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "pattern does not match", 107s # "instanceLocation": "", 107s # "keywordLocation": "/pattern" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 705 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 706 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 707 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 107s # result: { 107s # "valid": true 107s # } 107s # short-circuited result: { 107s # "valid": true 107s # } 107s ok 1 - test passes: data is valid: true 107s 1..1 107s } 107s ok 708 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/🐲", 107s # "keywordLocation": "/patternProperties/^🐲*$/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/🐲", 107s # "keywordLocation": "/patternProperties/^🐲*$/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s ok 709 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/🐲🐲", 107s # "keywordLocation": "/patternProperties/^🐲*$/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got string, not integer", 107s # "instanceLocation": "/🐲🐲", 107s # "keywordLocation": "/patternProperties/^🐲*$/type" 107s # }, 107s # { 107s # "error": "not all properties are valid", 107s # "instanceLocation": "", 107s # "keywordLocation": "/patternProperties" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s # 107s 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" { 107s # result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s # short-circuited result: { 107s # "errors": [ 107s # { 107s # "error": "got number, not integer", 107s # "instanceLocation": "", 107s # "keywordLocation": "/type" 107s # } 107s # ], 107s # "valid": false 107s # } 107s ok 1 - test passes: data is valid: false 107s 1..1 107s } 107s # 107s # generated with: Test::JSON::Schema::Acceptance 1.029 107s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 107s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 107s # specification version: draft4 107s # optional tests included: yes 107s # skipping directory: optional/format 107s # 107s # filename pass todo-fail fail 107s # --------------------------------------------------------------- 107s # additionalItems.json 18 0 0 107s # additionalProperties.json 16 0 0 107s # allOf.json 27 0 0 107s # anyOf.json 15 0 0 107s # default.json 7 0 0 107s # definitions.json 2 0 0 107s # dependencies.json 29 0 0 107s # enum.json 45 0 0 107s # format.json 36 0 0 107s # infinite-loop-detection.json 2 0 0 107s # items.json 21 0 0 107s # maxItems.json 4 0 0 107s # maxLength.json 5 0 0 107s # maxProperties.json 8 0 0 107s # maximum.json 14 0 0 107s # minItems.json 4 0 0 107s # minLength.json 5 0 0 107s # minProperties.json 6 0 0 107s # minimum.json 17 0 0 107s # multipleOf.json 10 0 0 107s # not.json 20 0 0 107s # oneOf.json 23 0 0 107s # pattern.json 9 0 0 107s # patternProperties.json 18 0 0 107s # properties.json 24 0 0 107s # ref.json 45 0 0 107s # refRemote.json 17 0 0 107s # required.json 15 0 0 107s # type.json 79 0 0 107s # uniqueItems.json 69 0 0 107s # optional/bignum.json 9 0 0 107s # optional/ecmascript-regex.json 60 14 0 107s # optional/float-overflow.json 1 0 0 107s # optional/id.json 3 0 0 107s # optional/non-bmp-regex.json 12 0 0 107s # optional/zeroTerminatedFloats.json 1 0 0 107s # --------------------------------------------------------------- 107s # TOTAL 696 14 0 107s # 107s # Congratulations, all non-optional tests are passing! 107s # 107s ok 711 - no leaks in the main evaluator object 107s ok 712 - no leaks in the short-circuiting evaluator object 107s 1..712 107s ok 108s t/zzz-acceptance-draft6-format.t ........ 108s # Seeded srand with seed '20251102' from local date. 108s # 108s # AUTHOR_TESTING: 108s # AUTOMATED_TESTING: 1 108s # EXTENDED_TESTING: 108s # NO_TODO: 108s # TEST_DIR: 108s # NO_SHORT_CIRCUIT: 108s # 108s # Using JSON decoder: Cpanel::JSON::XS 4.39 108s # 108s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft6/optional/format against draft6... 108s # 108s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid date-time string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s # 108s ok 26 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 27 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 28 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 29 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 30 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 31 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 32 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 33 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid email string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid email string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 34 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 35 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 36 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 37 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid email string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid email string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 38 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid email string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid email string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 39 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 40 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid email string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid email string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s # 108s ok 41 - hostname.json: "validation of host names" - "all string formats ignore integers" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 42 - hostname.json: "validation of host names" - "all string formats ignore floats" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 43 - hostname.json: "validation of host names" - "all string formats ignore objects" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 44 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 45 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 46 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 47 - hostname.json: "validation of host names" - "a valid host name" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 48 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 49 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 50 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 51 - hostname.json: "validation of host names" - "a host name with a component too long" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 52 - hostname.json: "validation of host names" - "starts with hyphen" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 53 - hostname.json: "validation of host names" - "ends with hyphen" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 54 - hostname.json: "validation of host names" - "starts with underscore" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 55 - hostname.json: "validation of host names" - "ends with underscore" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 56 - hostname.json: "validation of host names" - "contains underscore" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 57 - hostname.json: "validation of host names" - "maximum label length" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 58 - hostname.json: "validation of host names" - "exceeds maximum label length" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 59 - hostname.json: "validation of host names" - "single label" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 60 - hostname.json: "validation of host names" - "single label with hyphen" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 61 - hostname.json: "validation of host names" - "single label with digits" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 62 - hostname.json: "validation of host names" - "single label ending with digit" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 63 - hostname.json: "validation of host names" - "empty string" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 64 - hostname.json: "validation of host names" - "single dot" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid hostname string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s # 108s ok 65 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 66 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 67 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 68 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 69 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 70 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 71 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 72 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv4 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv4 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 73 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv4 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv4 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 74 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv4 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv4 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 75 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv4 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv4 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 76 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv4 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv4 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 77 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv4 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv4 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 78 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 79 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv4 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv4 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 80 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv4 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv4 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s # 108s ok 81 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 82 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 83 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 84 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 85 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 86 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 87 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 88 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 89 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 90 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 91 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 92 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 93 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 94 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 95 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 96 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 97 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 98 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 99 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 100 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 101 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 102 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 103 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 104 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 105 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 106 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 107 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 108 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 109 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 110 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 111 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 112 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 113 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 114 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 115 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 116 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 117 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 118 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 119 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 120 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid ipv6 string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s # 108s ok 121 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 122 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 123 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 124 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 125 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 126 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 127 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 128 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 129 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 130 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 131 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 132 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 133 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 134 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 135 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 136 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 137 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 138 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 139 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 140 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 141 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 142 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 143 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 144 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 145 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 146 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 147 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 148 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 149 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 150 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 151 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 152 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 153 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 154 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 155 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 156 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 157 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 158 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid json-pointer string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s # 108s ok 159 - unknown.json: "unknown format" - "unknown formats ignore integers" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 160 - unknown.json: "unknown format" - "unknown formats ignore floats" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 161 - unknown.json: "unknown format" - "unknown formats ignore objects" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 162 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 163 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 164 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 165 - unknown.json: "unknown format" - "unknown formats ignore strings" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s # 108s ok 166 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 167 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 168 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 169 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 170 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 171 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 172 - uri-reference.json: "validation of URI References" - "a valid URI" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 173 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 174 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 175 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid uri-reference string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid uri-reference string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 176 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 177 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 178 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid uri-reference string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid uri-reference string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s # 108s ok 179 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true # 108s 1..1 108s } 108s ok 180 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true # 108s 1..1 108s } 108s ok 181 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true # 108s 1..1 108s } 108s ok 182 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true # 108s 1..1 108s } 108s ok 183 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true # 108s 1..1 108s } 108s ok 184 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true # 108s 1..1 108s } 108s ok 185 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true # 108s 1..1 108s } 108s ok 186 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s not ok 1 - evaluation result is incorrect # 108s # Failed test (with amnesty) 'evaluation result is incorrect' 108s # at t/zzz-acceptance-draft6-format.t line 66. 108s # expected false; got true 108s # schema: { 108s # "format": "uri-template" 108s # } 108s # data: "http://example.com/dictionary/{term:1}/{term" 108s # result: { 108s # "valid": true 108s # } 108s 1..1 108s } 108s ok 187 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true # 108s 1..1 108s } 108s ok 188 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true # 108s 1..1 108s } 108s # 108s ok 189 - uri.json: "validation of URIs" - "all string formats ignore integers" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 190 - uri.json: "validation of URIs" - "all string formats ignore floats" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 191 - uri.json: "validation of URIs" - "all string formats ignore objects" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 192 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 193 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 194 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 195 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 196 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 197 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 198 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 199 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 200 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 201 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 202 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 203 - uri.json: "validation of URIs" - "a valid URL " { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 204 - uri.json: "validation of URIs" - "a valid mailto URI" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 205 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 206 - uri.json: "validation of URIs" - "a valid tel URI" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 207 - uri.json: "validation of URIs" - "a valid URN" { 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s ok 1 - test passes: data is valid: true 108s 1..1 108s } 108s ok 208 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid uri string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid uri string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 209 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid uri string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid uri string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 210 - uri.json: "validation of URIs" - "an invalid URI" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid uri string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid uri string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 211 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid uri string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid uri string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 212 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid uri string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid uri string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 213 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 108s # result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid uri string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s # short-circuited result: { 108s # "errors": [ 108s # { 108s # "error": "not a valid uri string", 108s # "instanceLocation": "", 108s # "keywordLocation": "/format" 108s # } 108s # ], 108s # "valid": false 108s # } 108s ok 1 - test passes: data is valid: false 108s 1..1 108s } 108s ok 214 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 108s # result: { 108s # "valid": true 108s # } 108s # short-circuited result: { 108s # "valid": true 108s # } 108s not ok 1 - evaluation result is incorrect # 108s # Failed test (with amnesty) 'evaluation result is incorrect' 108s # at t/zzz-acceptance-draft6-format.t line 66. 108s # expected false; got true 108s # schema: { 108s # "format": "uri" 108s # } 108s # data: "bar,baz:foo" 108s # result: { 108s # "valid": true 108s # } 108s 1..1 108s } 108s # 108s # generated with: Test::JSON::Schema::Acceptance 1.029 108s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 108s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 108s # specification version: draft6 108s # using custom test directory: /optional/format 108s # optional tests included: yes 108s # 108s # filename pass todo-fail fail 108s # --------------------------------------------------------------- 108s # date-time.json 25 0 0 108s # email.json 15 0 0 108s # hostname.json 24 0 0 108s # ipv4.json 16 0 0 108s # ipv6.json 40 0 0 108s # json-pointer.json 38 0 0 108s # unknown.json 7 0 0 108s # uri-reference.json 13 0 0 108s # uri-template.json 9 1 0 108s # uri.json 25 1 0 108s # --------------------------------------------------------------- 108s # TOTAL 212 2 0 108s # 108s # Congratulations, all non-optional tests are passing! 108s # 108s ok 215 - no leaks in the main evaluator object 108s ok 216 - no leaks in the short-circuiting evaluator object 108s 1..216 108s ok 111s t/zzz-acceptance-draft6.t ............... 111s # Seeded srand with seed '20251102' from local date. 111s # 111s # AUTHOR_TESTING: 111s # AUTOMATED_TESTING: 1 111s # EXTENDED_TESTING: 111s # NO_TODO: 111s # TEST_DIR: 111s # NO_SHORT_CIRCUIT: 111s # 111s # Using JSON decoder: Cpanel::JSON::XS 4.39 111s # 111s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 111s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft6 against draft6... 111s # 111s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/3", 111s # "keywordLocation": "/additionalItems/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/3", 111s # "keywordLocation": "/additionalItems/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "valid with a array of type integers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 4 - additionalItems.json: "when items is schema, additionalItems does nothing" - "invalid with a array of mixed types" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/items/type" 111s # }, 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/2", 111s # "keywordLocation": "/items/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/items/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 5 - additionalItems.json: "when items is schema, boolean additionalItems does nothing" - "all items match schema" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 9 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 10 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "additional item not permitted", 111s # "instanceLocation": "/3", 111s # "keywordLocation": "/additionalItems" 111s # }, 111s # { 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "additional item not permitted", 111s # "instanceLocation": "/3", 111s # "keywordLocation": "/additionalItems" 111s # }, 111s # { 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 11 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 12 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 13 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 14 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 15 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not boolean", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/additionalItems/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not boolean", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/additionalItems/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 16 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 17 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/additionalItems/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/additionalItems/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 18 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "additional item not permitted", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/additionalItems" 111s # }, 111s # { 111s # "error": "additional item not permitted", 111s # "instanceLocation": "/2", 111s # "keywordLocation": "/additionalItems" 111s # }, 111s # { 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "additional item not permitted", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/additionalItems" 111s # }, 111s # { 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 19 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 20 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/quux", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/quux", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 25 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 26 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 27 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 28 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/élmény", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/élmény", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 29 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 30 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 31 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not boolean", 111s # "instanceLocation": "/quux", 111s # "keywordLocation": "/additionalProperties/type" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not boolean", 111s # "instanceLocation": "/quux", 111s # "keywordLocation": "/additionalProperties/type" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 32 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 33 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not boolean", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/additionalProperties/type" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not boolean", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/additionalProperties/type" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 34 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 35 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not boolean", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/additionalProperties/type" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not boolean", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/additionalProperties/type" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 36 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 37 - allOf.json: "allOf" - "allOf" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 38 - allOf.json: "allOf" - "mismatch second" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/required" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/required" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 39 - allOf.json: "allOf" - "mismatch first" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/1/required" 111s # }, 111s # { 111s # "error": "subschema 1 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/1/required" 111s # }, 111s # { 111s # "error": "subschema 1 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 40 - allOf.json: "allOf" - "wrong type" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/allOf/0/properties/bar/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/properties" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/allOf/0/properties/bar/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/properties" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 41 - allOf.json: "allOf with base schema" - "valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 42 - allOf.json: "allOf with base schema" - "mismatch base schema" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 43 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/required" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/required" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 44 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: baz", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/1/required" 111s # }, 111s # { 111s # "error": "subschema 1 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: baz", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/1/required" 111s # }, 111s # { 111s # "error": "subschema 1 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 45 - allOf.json: "allOf with base schema" - "mismatch both" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/required" 111s # }, 111s # { 111s # "error": "object is missing property: baz", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/1/required" 111s # }, 111s # { 111s # "error": "subschemas 0, 1 are not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/required" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 46 - allOf.json: "allOf simple types" - "valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 47 - allOf.json: "allOf simple types" - "mismatch one" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is greater than 30", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/maximum" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is greater than 30", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/maximum" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 48 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 49 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/1" 111s # }, 111s # { 111s # "error": "subschema 1 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/1" 111s # }, 111s # { 111s # "error": "subschema 1 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 50 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0" 111s # }, 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/1" 111s # }, 111s # { 111s # "error": "subschemas 0, 1 are not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 51 - allOf.json: "allOf with one empty schema" - "any data is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 52 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 53 - allOf.json: "allOf with the first empty schema" - "number is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 54 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/1/type" 111s # }, 111s # { 111s # "error": "subschema 1 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/1/type" 111s # }, 111s # { 111s # "error": "subschema 1 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 55 - allOf.json: "allOf with the last empty schema" - "number is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 56 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/type" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/type" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 57 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 58 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/allOf/0/type" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/allOf" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/allOf/0/type" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/allOf" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 59 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # }, 111s # { 111s # "error": "value is not a multiple of 3", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # }, 111s # { 111s # "error": "value is not a multiple of 5", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 60 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # }, 111s # { 111s # "error": "value is not a multiple of 3", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 61 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # }, 111s # { 111s # "error": "value is not a multiple of 5", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 62 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 63 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 3", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # }, 111s # { 111s # "error": "value is not a multiple of 5", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 3", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 64 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 3", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 3", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 65 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 5", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 5", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/multipleOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 66 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 67 - anyOf.json: "anyOf" - "first anyOf valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 68 - anyOf.json: "anyOf" - "second anyOf valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 69 - anyOf.json: "anyOf" - "both anyOf valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 70 - anyOf.json: "anyOf" - "neither anyOf valid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/type" 111s # }, 111s # { 111s # "error": "value is less than 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/1/minimum" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/type" 111s # }, 111s # { 111s # "error": "value is less than 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/1/minimum" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 71 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 72 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 73 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "length is greater than 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/maxLength" 111s # }, 111s # { 111s # "error": "length is less than 4", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/1/minLength" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "length is greater than 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/maxLength" 111s # }, 111s # { 111s # "error": "length is less than 4", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/1/minLength" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 74 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 75 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 76 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0" 111s # }, 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/1" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0" 111s # }, 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/1" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 77 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 78 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 79 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 80 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/anyOf/0/properties/bar/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/properties" 111s # }, 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/anyOf/1/properties/foo/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/1/properties" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/anyOf/0/properties/bar/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/properties" 111s # }, 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/anyOf/1/properties/foo/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/1/properties" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 81 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 82 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 83 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 84 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/anyOf/0/type" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/anyOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/anyOf/0/type" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/anyOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 85 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 86 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 87 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 88 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 89 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 90 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 91 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 92 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 93 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 94 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 95 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 96 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 97 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 98 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 99 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 100 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 101 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 102 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 103 - const.json: "const validation" - "same value is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 104 - const.json: "const validation" - "another value is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 105 - const.json: "const validation" - "another type is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 106 - const.json: "const with object" - "same object is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 107 - const.json: "const with object" - "same object with different property order is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 108 - const.json: "const with object" - "another object is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 109 - const.json: "const with object" - "another type is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 110 - const.json: "const with array" - "same array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 111 - const.json: "const with array" - "another array item is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/0': wrong type: integer vs object)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/0': wrong type: integer vs object)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 112 - const.json: "const with array" - "array with additional items is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 113 - const.json: "const with null" - "null is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 114 - const.json: "const with null" - "not null is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 115 - const.json: "const with false does not match 0" - "false is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 116 - const.json: "const with false does not match 0" - "integer zero is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 117 - const.json: "const with false does not match 0" - "float zero is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 118 - const.json: "const with true does not match 1" - "true is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 119 - const.json: "const with true does not match 1" - "integer one is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 120 - const.json: "const with true does not match 1" - "float one is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 121 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 122 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 123 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 124 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 125 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 126 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 127 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 128 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 129 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 130 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 131 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 132 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 133 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 134 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 135 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 136 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 137 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 138 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 139 - const.json: "const with 1 does not match true" - "true is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 140 - const.json: "const with 1 does not match true" - "integer one is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 141 - const.json: "const with 1 does not match true" - "float one is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 142 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 143 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 144 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 145 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 146 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 147 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 148 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 149 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 150 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 151 - const.json: "nul characters in strings" - "match string with nul" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 152 - const.json: "nul characters in strings" - "do not match string lacking nul" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/const" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 153 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 154 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 155 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 156 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is less than 5", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/contains/minimum" 111s # }, 111s # { 111s # "error": "value is less than 5", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/contains/minimum" 111s # }, 111s # { 111s # "error": "value is less than 5", 111s # "instanceLocation": "/2", 111s # "keywordLocation": "/contains/minimum" 111s # }, 111s # { 111s # "error": "subschema is not valid against any item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/contains" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is less than 5", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/contains/minimum" 111s # }, 111s # { 111s # "error": "value is less than 5", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/contains/minimum" 111s # }, 111s # { 111s # "error": "value is less than 5", 111s # "instanceLocation": "/2", 111s # "keywordLocation": "/contains/minimum" 111s # }, 111s # { 111s # "error": "subschema is not valid against any item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/contains" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 157 - contains.json: "contains keyword validation" - "empty array is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is not valid against any item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/contains" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is not valid against any item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/contains" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 158 - contains.json: "contains keyword validation" - "not array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 159 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 160 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 161 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/contains/const" 111s # }, 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/contains/const" 111s # }, 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "/2", 111s # "keywordLocation": "/contains/const" 111s # }, 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "/3", 111s # "keywordLocation": "/contains/const" 111s # }, 111s # { 111s # "error": "subschema is not valid against any item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/contains" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/contains/const" 111s # }, 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/contains/const" 111s # }, 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "/2", 111s # "keywordLocation": "/contains/const" 111s # }, 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "/3", 111s # "keywordLocation": "/contains/const" 111s # }, 111s # { 111s # "error": "subschema is not valid against any item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/contains" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 162 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 163 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is not valid against any item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/contains" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is not valid against any item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/contains" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 164 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/contains" 111s # }, 111s # { 111s # "error": "subschema is not valid against any item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/contains" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/contains" 111s # }, 111s # { 111s # "error": "subschema is not valid against any item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/contains" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 165 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is not valid against any item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/contains" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is not valid against any item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/contains" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 166 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 167 - contains.json: "items + contains" - "matches items, does not match contains" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 3", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/contains/multipleOf" 111s # }, 111s # { 111s # "error": "value is not a multiple of 3", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/contains/multipleOf" 111s # }, 111s # { 111s # "error": "value is not a multiple of 3", 111s # "instanceLocation": "/2", 111s # "keywordLocation": "/contains/multipleOf" 111s # }, 111s # { 111s # "error": "subschema is not valid against any item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/contains" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 3", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/contains/multipleOf" 111s # }, 111s # { 111s # "error": "value is not a multiple of 3", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/contains/multipleOf" 111s # }, 111s # { 111s # "error": "value is not a multiple of 3", 111s # "instanceLocation": "/2", 111s # "keywordLocation": "/contains/multipleOf" 111s # }, 111s # { 111s # "error": "subschema is not valid against any item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/contains" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 168 - contains.json: "items + contains" - "does not match items, matches contains" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 2", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/multipleOf" 111s # }, 111s # { 111s # "error": "value is not a multiple of 2", 111s # "instanceLocation": "/2", 111s # "keywordLocation": "/items/multipleOf" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 2", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/multipleOf" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 169 - contains.json: "items + contains" - "matches both items and contains" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 170 - contains.json: "items + contains" - "matches neither items nor contains" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 2", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/multipleOf" 111s # }, 111s # { 111s # "error": "value is not a multiple of 2", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/items/multipleOf" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # }, 111s # { 111s # "error": "value is not a multiple of 3", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/contains/multipleOf" 111s # }, 111s # { 111s # "error": "value is not a multiple of 3", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/contains/multipleOf" 111s # }, 111s # { 111s # "error": "subschema is not valid against any item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/contains" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 2", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/multipleOf" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 171 - contains.json: "contains with null instance elements" - "allows null items" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 172 - default.json: "invalid type for default" - "valid when property is specified" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 173 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 174 - default.json: "invalid string value for default" - "valid when property is specified" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 175 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s 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)" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s 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)" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is greater than 3", 111s # "instanceLocation": "/alpha", 111s # "keywordLocation": "/properties/alpha/maximum" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is greater than 3", 111s # "instanceLocation": "/alpha", 111s # "keywordLocation": "/properties/alpha/maximum" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s 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" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 179 - definitions.json: "validate definition against metaschema" - "valid definition schema" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 180 - definitions.json: "validate definition against metaschema" - "invalid definition schema" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/simpleTypes/enum", 111s # "error": "value does not match", 111s # "instanceLocation": "/definitions/foo/type", 111s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf/1/type", 111s # "error": "got integer, not array", 111s # "instanceLocation": "/definitions/foo/type", 111s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf", 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "/definitions/foo/type", 111s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "/definitions/foo", 111s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/definitions/additionalProperties", 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "/definitions", 111s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/$ref/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/simpleTypes/enum", 111s # "error": "value does not match", 111s # "instanceLocation": "/definitions/foo/type", 111s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf/1/type", 111s # "error": "got integer, not array", 111s # "instanceLocation": "/definitions/foo/type", 111s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf", 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "/definitions/foo/type", 111s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "/definitions/foo", 111s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/definitions/additionalProperties", 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "/definitions", 111s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/$ref/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 181 - dependencies.json: "dependencies" - "neither" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 182 - dependencies.json: "dependencies" - "nondependant" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 183 - dependencies.json: "dependencies" - "with dependency" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 184 - dependencies.json: "dependencies" - "missing dependency" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/bar" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/bar" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 185 - dependencies.json: "dependencies" - "ignores arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 186 - dependencies.json: "dependencies" - "ignores strings" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 187 - dependencies.json: "dependencies" - "ignores other non-objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 188 - dependencies.json: "dependencies with empty array" - "empty object" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 189 - dependencies.json: "dependencies with empty array" - "object with one property" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 190 - dependencies.json: "dependencies with empty array" - "non-object is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 191 - dependencies.json: "multiple dependencies" - "neither" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 192 - dependencies.json: "multiple dependencies" - "nondependants" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 193 - dependencies.json: "multiple dependencies" - "with dependencies" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 194 - dependencies.json: "multiple dependencies" - "missing dependency" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/quux" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/quux" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 195 - dependencies.json: "multiple dependencies" - "missing other dependency" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/quux" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/quux" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 196 - dependencies.json: "multiple dependencies" - "missing both dependencies" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing properties: foo, bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/quux" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing properties: foo, bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/quux" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 197 - dependencies.json: "multiple dependencies subschema" - "valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 198 - dependencies.json: "multiple dependencies subschema" - "no dependency" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 199 - dependencies.json: "multiple dependencies subschema" - "wrong type" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/dependencies/bar/properties/foo/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/bar/properties" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/dependencies/bar/properties/foo/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/bar/properties" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 200 - dependencies.json: "multiple dependencies subschema" - "wrong type other" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/dependencies/bar/properties/bar/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/bar/properties" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/dependencies/bar/properties/bar/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/bar/properties" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 201 - dependencies.json: "multiple dependencies subschema" - "wrong type both" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/dependencies/bar/properties/bar/type" 111s # }, 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/dependencies/bar/properties/foo/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/bar/properties" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/dependencies/bar/properties/bar/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/bar/properties" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 202 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema true is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 203 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema false is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/bar" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/bar" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 204 - dependencies.json: "dependencies with boolean subschemas" - "object with both properties is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/bar" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/bar" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 205 - dependencies.json: "dependencies with boolean subschemas" - "empty object is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 206 - dependencies.json: "dependencies with escaped characters" - "valid object 1" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 207 - dependencies.json: "dependencies with escaped characters" - "valid object 2" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 208 - dependencies.json: "dependencies with escaped characters" - "valid object 3" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 209 - dependencies.json: "dependencies with escaped characters" - "invalid object 1" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo\rbar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/foo\nbar" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo\rbar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/foo\nbar" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 210 - dependencies.json: "dependencies with escaped characters" - "invalid object 2" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object has fewer than 4 properties", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object has fewer than 4 properties", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 211 - dependencies.json: "dependencies with escaped characters" - "invalid object 3" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo\"bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/foo'bar/required" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo\"bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/foo'bar/required" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 212 - dependencies.json: "dependencies with escaped characters" - "invalid object 4" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo'bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/foo\"bar" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo'bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/foo\"bar" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 213 - dependencies.json: "dependent subschema incompatible with root" - "matches root" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/dependencies/foo/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/foo/additionalProperties" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/dependencies/foo/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/foo/additionalProperties" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 214 - dependencies.json: "dependent subschema incompatible with root" - "matches dependency" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 215 - dependencies.json: "dependent subschema incompatible with root" - "matches both" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/dependencies/foo/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/foo/additionalProperties" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/dependencies/foo/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies/foo/additionalProperties" 111s # }, 111s # { 111s # "error": "not all dependencies are satisfied", 111s # "instanceLocation": "", 111s # "keywordLocation": "/dependencies" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 216 - dependencies.json: "dependent subschema incompatible with root" - "no dependency" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 217 - enum.json: "simple enum validation" - "one of the enum is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 218 - enum.json: "simple enum validation" - "something else is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 219 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 220 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 221 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 111s # result: { 111s # "errors": [ 111s # { 111s # "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)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "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)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 222 - enum.json: "heterogeneous enum validation" - "valid object matches" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 223 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 224 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 225 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 226 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 227 - enum.json: "enums in properties" - "both properties are valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 228 - enum.json: "enums in properties" - "wrong foo value" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/enum" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/enum" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 229 - enum.json: "enums in properties" - "wrong bar value" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/properties/bar/enum" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/properties/bar/enum" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 230 - enum.json: "enums in properties" - "missing optional property is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 231 - enum.json: "enums in properties" - "missing required property is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 232 - enum.json: "enums in properties" - "missing all properties is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 233 - enum.json: "enum with escaped characters" - "member 1 is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 234 - enum.json: "enum with escaped characters" - "member 2 is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 235 - enum.json: "enum with escaped characters" - "another string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 236 - enum.json: "enum with false does not match 0" - "false is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 237 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 238 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 239 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 240 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 241 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 242 - enum.json: "enum with true does not match 1" - "true is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 243 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 244 - enum.json: "enum with true does not match 1" - "float one is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 245 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 246 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 247 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 248 - enum.json: "enum with 0 does not match false" - "false is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 249 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 250 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 251 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 252 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 253 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 254 - enum.json: "enum with 1 does not match true" - "true is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 255 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 256 - enum.json: "enum with 1 does not match true" - "float one is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 257 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 258 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 259 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 260 - enum.json: "nul characters in strings" - "match string with nul" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 261 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 262 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 263 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is greater than or equal to 3", 111s # "instanceLocation": "", 111s # "keywordLocation": "/exclusiveMaximum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is greater than or equal to 3", 111s # "instanceLocation": "", 111s # "keywordLocation": "/exclusiveMaximum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 264 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is greater than or equal to 3", 111s # "instanceLocation": "", 111s # "keywordLocation": "/exclusiveMaximum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is greater than or equal to 3", 111s # "instanceLocation": "", 111s # "keywordLocation": "/exclusiveMaximum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 265 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 266 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 267 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is less than or equal to 1.1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/exclusiveMinimum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is less than or equal to 1.1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/exclusiveMinimum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 268 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is less than or equal to 1.1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/exclusiveMinimum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is less than or equal to 1.1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/exclusiveMinimum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 269 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 270 - format.json: "email format" - "all string formats ignore integers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 271 - format.json: "email format" - "all string formats ignore floats" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 272 - format.json: "email format" - "all string formats ignore objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 273 - format.json: "email format" - "all string formats ignore arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 274 - format.json: "email format" - "all string formats ignore booleans" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 275 - format.json: "email format" - "all string formats ignore nulls" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 276 - format.json: "ipv4 format" - "all string formats ignore integers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 277 - format.json: "ipv4 format" - "all string formats ignore floats" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 278 - format.json: "ipv4 format" - "all string formats ignore objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 279 - format.json: "ipv4 format" - "all string formats ignore arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 280 - format.json: "ipv4 format" - "all string formats ignore booleans" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 281 - format.json: "ipv4 format" - "all string formats ignore nulls" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 282 - format.json: "ipv6 format" - "all string formats ignore integers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 283 - format.json: "ipv6 format" - "all string formats ignore floats" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 284 - format.json: "ipv6 format" - "all string formats ignore objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 285 - format.json: "ipv6 format" - "all string formats ignore arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 286 - format.json: "ipv6 format" - "all string formats ignore booleans" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 287 - format.json: "ipv6 format" - "all string formats ignore nulls" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 288 - format.json: "hostname format" - "all string formats ignore integers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 289 - format.json: "hostname format" - "all string formats ignore floats" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 290 - format.json: "hostname format" - "all string formats ignore objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 291 - format.json: "hostname format" - "all string formats ignore arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 292 - format.json: "hostname format" - "all string formats ignore booleans" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 293 - format.json: "hostname format" - "all string formats ignore nulls" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 294 - format.json: "date-time format" - "all string formats ignore integers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 295 - format.json: "date-time format" - "all string formats ignore floats" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 296 - format.json: "date-time format" - "all string formats ignore objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 297 - format.json: "date-time format" - "all string formats ignore arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 298 - format.json: "date-time format" - "all string formats ignore booleans" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 299 - format.json: "date-time format" - "all string formats ignore nulls" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 300 - format.json: "json-pointer format" - "all string formats ignore integers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 301 - format.json: "json-pointer format" - "all string formats ignore floats" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 302 - format.json: "json-pointer format" - "all string formats ignore objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 303 - format.json: "json-pointer format" - "all string formats ignore arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 304 - format.json: "json-pointer format" - "all string formats ignore booleans" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 305 - format.json: "json-pointer format" - "all string formats ignore nulls" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 306 - format.json: "uri format" - "all string formats ignore integers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 307 - format.json: "uri format" - "all string formats ignore floats" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 308 - format.json: "uri format" - "all string formats ignore objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 309 - format.json: "uri format" - "all string formats ignore arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 310 - format.json: "uri format" - "all string formats ignore booleans" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 311 - format.json: "uri format" - "all string formats ignore nulls" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 312 - format.json: "uri-reference format" - "all string formats ignore integers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 313 - format.json: "uri-reference format" - "all string formats ignore floats" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 314 - format.json: "uri-reference format" - "all string formats ignore objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 315 - format.json: "uri-reference format" - "all string formats ignore arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 316 - format.json: "uri-reference format" - "all string formats ignore booleans" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 317 - format.json: "uri-reference format" - "all string formats ignore nulls" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 318 - format.json: "uri-template format" - "all string formats ignore integers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 319 - format.json: "uri-template format" - "all string formats ignore floats" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 320 - format.json: "uri-template format" - "all string formats ignore objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 321 - format.json: "uri-template format" - "all string formats ignore arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 322 - format.json: "uri-template format" - "all string formats ignore booleans" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 323 - format.json: "uri-template format" - "all string formats ignore nulls" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s 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" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s 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" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/int/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "#/definitions/int/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/1/additionalProperties" 111s # }, 111s # { 111s # "error": "subschemas 0, 1 are not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/int/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/properties" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 326 - items.json: "a schema given for items" - "valid items" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 327 - items.json: "a schema given for items" - "wrong type of items" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/items/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/items/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 328 - items.json: "a schema given for items" - "ignores non-arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 329 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 330 - items.json: "an array of schemas for items" - "correct types" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 331 - items.json: "an array of schemas for items" - "wrong types" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/0/type" 111s # }, 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/items/1/type" 111s # }, 111s # { 111s # "error": "not all items are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/0/type" 111s # }, 111s # { 111s # "error": "not all items are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 332 - items.json: "an array of schemas for items" - "incomplete array of items" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 333 - items.json: "an array of schemas for items" - "array with additional items" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 334 - items.json: "an array of schemas for items" - "empty array" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 335 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 336 - items.json: "items with boolean schema (true)" - "any array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 337 - items.json: "items with boolean schema (true)" - "empty array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 338 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "item not permitted", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items" 111s # }, 111s # { 111s # "error": "item not permitted", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/items" 111s # }, 111s # { 111s # "error": "item not permitted", 111s # "instanceLocation": "/2", 111s # "keywordLocation": "/items" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "item not permitted", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 339 - items.json: "items with boolean schema (false)" - "empty array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 340 - items.json: "items with boolean schemas" - "array with one item is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 341 - items.json: "items with boolean schemas" - "array with two items is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "item not permitted", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/items/1" 111s # }, 111s # { 111s # "error": "not all items are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "item not permitted", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/items/1" 111s # }, 111s # { 111s # "error": "not all items are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 342 - items.json: "items with boolean schemas" - "empty array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 343 - items.json: "items and subitems" - "valid items" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 344 - items.json: "items and subitems" - "too many items" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "additional item not permitted", 111s # "instanceLocation": "/3", 111s # "keywordLocation": "/additionalItems" 111s # }, 111s # { 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "additional item not permitted", 111s # "instanceLocation": "/3", 111s # "keywordLocation": "/additionalItems" 111s # }, 111s # { 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 345 - items.json: "items and subitems" - "too many sub-items" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 111s # "error": "additional item not permitted", 111s # "instanceLocation": "/0/2", 111s # "keywordLocation": "/items/0/$ref/additionalItems" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/0/$ref/additionalItems" 111s # }, 111s # { 111s # "error": "not all items are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 111s # "error": "additional item not permitted", 111s # "instanceLocation": "/0/2", 111s # "keywordLocation": "/items/0/$ref/additionalItems" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/0/$ref/additionalItems" 111s # }, 111s # { 111s # "error": "not all items are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 346 - items.json: "items and subitems" - "wrong item" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/item/type", 111s # "error": "got object, not array", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/0/$ref/type" 111s # }, 111s # { 111s # "error": "not all items are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/item/type", 111s # "error": "got object, not array", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/0/$ref/type" 111s # }, 111s # { 111s # "error": "not all items are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 347 - items.json: "items and subitems" - "wrong sub-item" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "/0/0", 111s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "#/definitions/item/items", 111s # "error": "not all items are valid", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/0/$ref/items" 111s # }, 111s # { 111s # "error": "not all items are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "/0/0", 111s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "#/definitions/item/items", 111s # "error": "not all items are valid", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/0/$ref/items" 111s # }, 111s # { 111s # "error": "not all items are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 348 - items.json: "items and subitems" - "fewer items is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 349 - items.json: "nested items" - "valid nested array" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 350 - items.json: "nested items" - "nested array with invalid type" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "/0/0/0/0", 111s # "keywordLocation": "/items/items/items/items/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/0/0/0", 111s # "keywordLocation": "/items/items/items/items" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/0/0", 111s # "keywordLocation": "/items/items/items" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/items" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "/0/0/0/0", 111s # "keywordLocation": "/items/items/items/items/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/0/0/0", 111s # "keywordLocation": "/items/items/items/items" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/0/0", 111s # "keywordLocation": "/items/items/items" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/items" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 351 - items.json: "nested items" - "not deep enough" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not array", 111s # "instanceLocation": "/0/0/0", 111s # "keywordLocation": "/items/items/items/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/0/0", 111s # "keywordLocation": "/items/items/items" 111s # }, 111s # { 111s # "error": "got integer, not array", 111s # "instanceLocation": "/0/1/0", 111s # "keywordLocation": "/items/items/items/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/0/1", 111s # "keywordLocation": "/items/items/items" 111s # }, 111s # { 111s # "error": "got integer, not array", 111s # "instanceLocation": "/0/2/0", 111s # "keywordLocation": "/items/items/items/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/0/2", 111s # "keywordLocation": "/items/items/items" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/items" 111s # }, 111s # { 111s # "error": "got integer, not array", 111s # "instanceLocation": "/1/0/0", 111s # "keywordLocation": "/items/items/items/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/1/0", 111s # "keywordLocation": "/items/items/items" 111s # }, 111s # { 111s # "error": "got integer, not array", 111s # "instanceLocation": "/1/1/0", 111s # "keywordLocation": "/items/items/items/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/1/1", 111s # "keywordLocation": "/items/items/items" 111s # }, 111s # { 111s # "error": "got integer, not array", 111s # "instanceLocation": "/1/2/0", 111s # "keywordLocation": "/items/items/items/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/1/2", 111s # "keywordLocation": "/items/items/items" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/items/items" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not array", 111s # "instanceLocation": "/0/0/0", 111s # "keywordLocation": "/items/items/items/type" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/0/0", 111s # "keywordLocation": "/items/items/items" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/items" 111s # }, 111s # { 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 352 - items.json: "single-form items with null instance elements" - "allows null elements" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 353 - items.json: "array-form items with null instance elements" - "allows null elements" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 354 - maxItems.json: "maxItems validation" - "shorter is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 355 - maxItems.json: "maxItems validation" - "exact length is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 356 - maxItems.json: "maxItems validation" - "too long is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "array has more than 2 items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maxItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "array has more than 2 items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maxItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 357 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 358 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 359 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "array has more than 2 items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maxItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "array has more than 2 items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maxItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 360 - maxLength.json: "maxLength validation" - "shorter is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 361 - maxLength.json: "maxLength validation" - "exact length is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 362 - maxLength.json: "maxLength validation" - "too long is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "length is greater than 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maxLength" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "length is greater than 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maxLength" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 363 - maxLength.json: "maxLength validation" - "ignores non-strings" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 364 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 365 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 366 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "length is greater than 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maxLength" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "length is greater than 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maxLength" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 367 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 368 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 369 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object has more than 2 properties", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maxProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object has more than 2 properties", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maxProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 370 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 371 - maxProperties.json: "maxProperties validation" - "ignores strings" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 372 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 373 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 374 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object has more than 2 properties", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maxProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object has more than 2 properties", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maxProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 375 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 376 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object has more than 0 property", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maxProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object has more than 0 property", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maxProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 377 - maximum.json: "maximum validation" - "below the maximum is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 378 - maximum.json: "maximum validation" - "boundary point is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 379 - maximum.json: "maximum validation" - "above the maximum is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is greater than 3", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maximum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is greater than 3", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maximum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 380 - maximum.json: "maximum validation" - "ignores non-numbers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 381 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 382 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 383 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 384 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is greater than 300", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maximum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is greater than 300", 111s # "instanceLocation": "", 111s # "keywordLocation": "/maximum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 385 - minItems.json: "minItems validation" - "longer is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 386 - minItems.json: "minItems validation" - "exact length is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 387 - minItems.json: "minItems validation" - "too short is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "array has fewer than 1 item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "array has fewer than 1 item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 388 - minItems.json: "minItems validation" - "ignores non-arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 389 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 390 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "array has fewer than 1 item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "array has fewer than 1 item", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 391 - minLength.json: "minLength validation" - "longer is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 392 - minLength.json: "minLength validation" - "exact length is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 393 - minLength.json: "minLength validation" - "too short is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "length is less than 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minLength" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "length is less than 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minLength" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 394 - minLength.json: "minLength validation" - "ignores non-strings" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 395 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "length is less than 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minLength" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "length is less than 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minLength" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 396 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 397 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "length is less than 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minLength" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "length is less than 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minLength" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 398 - minProperties.json: "minProperties validation" - "longer is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 399 - minProperties.json: "minProperties validation" - "exact length is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 400 - minProperties.json: "minProperties validation" - "too short is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object has fewer than 1 property", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object has fewer than 1 property", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 401 - minProperties.json: "minProperties validation" - "ignores arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 402 - minProperties.json: "minProperties validation" - "ignores strings" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 403 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 404 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 405 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object has fewer than 1 property", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object has fewer than 1 property", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 406 - minimum.json: "minimum validation" - "above the minimum is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 407 - minimum.json: "minimum validation" - "boundary point is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 408 - minimum.json: "minimum validation" - "below the minimum is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is less than 1.1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minimum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is less than 1.1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minimum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 409 - minimum.json: "minimum validation" - "ignores non-numbers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 410 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 411 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 412 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 413 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 414 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is less than -2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minimum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is less than -2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minimum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 415 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is less than -2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minimum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is less than -2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/minimum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 416 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 417 - multipleOf.json: "by int" - "int by int" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 418 - multipleOf.json: "by int" - "int by int fail" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/multipleOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/multipleOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 419 - multipleOf.json: "by int" - "ignores non-numbers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 420 - multipleOf.json: "by number" - "zero is multiple of anything" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 421 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 422 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 1.5", 111s # "instanceLocation": "", 111s # "keywordLocation": "/multipleOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 1.5", 111s # "instanceLocation": "", 111s # "keywordLocation": "/multipleOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 423 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 424 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 0.0001", 111s # "instanceLocation": "", 111s # "keywordLocation": "/multipleOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 0.0001", 111s # "instanceLocation": "", 111s # "keywordLocation": "/multipleOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 425 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 0.123456789", 111s # "instanceLocation": "", 111s # "keywordLocation": "/multipleOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is not a multiple of 0.123456789", 111s # "instanceLocation": "", 111s # "keywordLocation": "/multipleOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 426 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 427 - not.json: "not" - "allowed" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 428 - not.json: "not" - "disallowed" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 429 - not.json: "not multiple types" - "valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 430 - not.json: "not multiple types" - "mismatch" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 431 - not.json: "not multiple types" - "other mismatch" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 432 - not.json: "not more complex schema" - "match" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 433 - not.json: "not more complex schema" - "other match" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 434 - not.json: "not more complex schema" - "mismatch" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 435 - not.json: "forbidden property" - "property present" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/not" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/not" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 436 - not.json: "forbidden property" - "property absent" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 437 - not.json: "forbid everything with empty schema" - "number is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 438 - not.json: "forbid everything with empty schema" - "string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 439 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 440 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 441 - not.json: "forbid everything with empty schema" - "null is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 442 - not.json: "forbid everything with empty schema" - "object is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 443 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 444 - not.json: "forbid everything with empty schema" - "array is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 445 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 446 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 447 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 448 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 449 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 450 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 451 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 452 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 453 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 454 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is true", 111s # "instanceLocation": "", 111s # "keywordLocation": "/not" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 455 - not.json: "allow everything with boolean schema false" - "number is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 456 - not.json: "allow everything with boolean schema false" - "string is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 457 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 458 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 459 - not.json: "allow everything with boolean schema false" - "null is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 460 - not.json: "allow everything with boolean schema false" - "object is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 461 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 462 - not.json: "allow everything with boolean schema false" - "array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 463 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 464 - not.json: "double negation" - "any value is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 465 - oneOf.json: "oneOf" - "first oneOf valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 466 - oneOf.json: "oneOf" - "second oneOf valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 467 - oneOf.json: "oneOf" - "both oneOf valid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "multiple subschemas are valid: 0, 1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "multiple subschemas are valid: 0, 1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 468 - oneOf.json: "oneOf" - "neither oneOf valid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/type" 111s # }, 111s # { 111s # "error": "value is less than 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1/minimum" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/type" 111s # }, 111s # { 111s # "error": "value is less than 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1/minimum" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 469 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # }, 111s # { 111s # "error": "multiple subschemas are valid: 0, 1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 470 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 471 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "multiple subschemas are valid: 0, 1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "multiple subschemas are valid: 0, 1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 472 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "multiple subschemas are valid: 0, 1, 2", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "multiple subschemas are valid: 0, 1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 473 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 474 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "multiple subschemas are valid: 0, 1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "multiple subschemas are valid: 0, 1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 475 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0" 111s # }, 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1" 111s # }, 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/2" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0" 111s # }, 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1" 111s # }, 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/2" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 476 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 477 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 478 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "multiple subschemas are valid: 0, 1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "multiple subschemas are valid: 0, 1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 479 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/oneOf/0/properties/bar/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/properties" 111s # }, 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/oneOf/1/properties/foo/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1/properties" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/oneOf/0/properties/bar/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/properties" 111s # }, 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/oneOf/1/properties/foo/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1/properties" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 480 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 481 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "multiple subschemas are valid: 0, 1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "multiple subschemas are valid: 0, 1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 482 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/required" 111s # }, 111s # { 111s # "error": "object is missing properties: foo, baz", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1/required" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/required" 111s # }, 111s # { 111s # "error": "object is missing properties: foo, baz", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1/required" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 483 - oneOf.json: "oneOf with required" - "first valid - valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 484 - oneOf.json: "oneOf with required" - "second valid - valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 485 - oneOf.json: "oneOf with required" - "both valid - invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "multiple subschemas are valid: 0, 1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "multiple subschemas are valid: 0, 1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 486 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 487 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 488 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "multiple subschemas are valid: 0, 1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "multiple subschemas are valid: 0, 1", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 489 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/required" 111s # }, 111s # { 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1/required" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: bar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/required" 111s # }, 111s # { 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1/required" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 490 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 491 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/oneOf/0/type" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/oneOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/oneOf/0/type" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/oneOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 492 - pattern.json: "pattern validation" - "a matching pattern is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 493 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 494 - pattern.json: "pattern validation" - "ignores booleans" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 495 - pattern.json: "pattern validation" - "ignores integers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 496 - pattern.json: "pattern validation" - "ignores floats" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 497 - pattern.json: "pattern validation" - "ignores objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 498 - pattern.json: "pattern validation" - "ignores arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 499 - pattern.json: "pattern validation" - "ignores null" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 500 - pattern.json: "pattern is not anchored" - "matches a substring" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 501 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 502 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 503 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/patternProperties/f.*o/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/patternProperties/f.*o/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 504 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/patternProperties/f.*o/type" 111s # }, 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/foooooo", 111s # "keywordLocation": "/patternProperties/f.*o/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/patternProperties/f.*o/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 505 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 506 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 507 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 508 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 509 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 510 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 511 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/a", 111s # "keywordLocation": "/patternProperties/a*/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/a", 111s # "keywordLocation": "/patternProperties/a*/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 512 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is greater than 20", 111s # "instanceLocation": "/aaaa", 111s # "keywordLocation": "/patternProperties/aaa*/maximum" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is greater than 20", 111s # "instanceLocation": "/aaaa", 111s # "keywordLocation": "/patternProperties/aaa*/maximum" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 513 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/aaa", 111s # "keywordLocation": "/patternProperties/a*/type" 111s # }, 111s # { 111s # "error": "value is greater than 20", 111s # "instanceLocation": "/aaaa", 111s # "keywordLocation": "/patternProperties/aaa*/maximum" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/aaa", 111s # "keywordLocation": "/patternProperties/a*/type" 111s # }, 111s # { 111s # "error": "value is greater than 20", 111s # "instanceLocation": "/aaaa", 111s # "keywordLocation": "/patternProperties/aaa*/maximum" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 514 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 515 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not boolean", 111s # "instanceLocation": "/a31b", 111s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not boolean", 111s # "instanceLocation": "/a31b", 111s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 516 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 517 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "/a_X_3", 111s # "keywordLocation": "/patternProperties/X_/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "/a_X_3", 111s # "keywordLocation": "/patternProperties/X_/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 518 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 519 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "property not permitted", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/patternProperties/b.*" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "property not permitted", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/patternProperties/b.*" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 520 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "property not permitted", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/patternProperties/b.*" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "property not permitted", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/patternProperties/b.*" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 521 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "property not permitted", 111s # "instanceLocation": "/foobar", 111s # "keywordLocation": "/patternProperties/b.*" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "property not permitted", 111s # "instanceLocation": "/foobar", 111s # "keywordLocation": "/patternProperties/b.*" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 522 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 523 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 524 - properties.json: "object properties validation" - "both properties present and valid is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 525 - properties.json: "object properties validation" - "one property invalid is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not string", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/properties/bar/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not string", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/properties/bar/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 526 - properties.json: "object properties validation" - "both properties invalid is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not string", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/properties/bar/type" 111s # }, 111s # { 111s # "error": "got array, not integer", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not string", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/properties/bar/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 527 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 528 - properties.json: "object properties validation" - "ignores arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 529 - properties.json: "object properties validation" - "ignores other non-objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 530 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 531 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "array has more than 3 items", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/maxItems" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "array has more than 3 items", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/maxItems" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 532 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "array has fewer than 2 items", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/patternProperties/f.o/minItems" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "array has fewer than 2 items", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/patternProperties/f.o/minItems" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 533 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 534 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "array has fewer than 2 items", 111s # "instanceLocation": "/fxo", 111s # "keywordLocation": "/patternProperties/f.o/minItems" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "array has fewer than 2 items", 111s # "instanceLocation": "/fxo", 111s # "keywordLocation": "/patternProperties/f.o/minItems" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 535 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 536 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 537 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/quux", 111s # "keywordLocation": "/additionalProperties/type" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/quux", 111s # "keywordLocation": "/additionalProperties/type" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 538 - properties.json: "properties with boolean schema" - "no property present is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 539 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 540 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "property not permitted", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/properties/bar" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "property not permitted", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/properties/bar" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 541 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "property not permitted", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/properties/bar" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "property not permitted", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/properties/bar" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 542 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 543 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "/foo\tbar", 111s # "keywordLocation": "/properties/foo\tbar/type" 111s # }, 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "/foo\nbar", 111s # "keywordLocation": "/properties/foo\nbar/type" 111s # }, 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "/foo\fbar", 111s # "keywordLocation": "/properties/foo\fbar/type" 111s # }, 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "/foo\rbar", 111s # "keywordLocation": "/properties/foo\rbar/type" 111s # }, 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "/foo\"bar", 111s # "keywordLocation": "/properties/foo\"bar/type" 111s # }, 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "/foo\\bar", 111s # "keywordLocation": "/properties/foo\\bar/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "/foo\tbar", 111s # "keywordLocation": "/properties/foo\tbar/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 544 - properties.json: "properties with null valued instance properties" - "allows null values" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 545 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 546 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 547 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 548 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "/__proto__", 111s # "keywordLocation": "/properties/__proto__/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "/__proto__", 111s # "keywordLocation": "/properties/__proto__/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 549 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "/toString/length", 111s # "keywordLocation": "/properties/toString/properties/length/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "/toString", 111s # "keywordLocation": "/properties/toString/properties" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "/toString/length", 111s # "keywordLocation": "/properties/toString/properties/length/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "/toString", 111s # "keywordLocation": "/properties/toString/properties" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 550 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not number", 111s # "instanceLocation": "/constructor", 111s # "keywordLocation": "/properties/constructor/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not number", 111s # "instanceLocation": "/constructor", 111s # "keywordLocation": "/properties/constructor/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 551 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 552 - propertyNames.json: "propertyNames validation" - "all property names valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 553 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "length is greater than 3", 111s # "instanceLocation": "/foobar", 111s # "keywordLocation": "/propertyNames/maxLength" 111s # }, 111s # { 111s # "error": "not all property names are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/propertyNames" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "length is greater than 3", 111s # "instanceLocation": "/foobar", 111s # "keywordLocation": "/propertyNames/maxLength" 111s # }, 111s # { 111s # "error": "not all property names are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/propertyNames" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 554 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 555 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 556 - propertyNames.json: "propertyNames validation" - "ignores strings" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 557 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 558 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 559 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "/aaA", 111s # "keywordLocation": "/propertyNames/pattern" 111s # }, 111s # { 111s # "error": "not all property names are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/propertyNames" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "/aaA", 111s # "keywordLocation": "/propertyNames/pattern" 111s # }, 111s # { 111s # "error": "not all property names are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/propertyNames" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 560 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 561 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 562 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 563 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/propertyNames" 111s # }, 111s # { 111s # "error": "not all property names are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/propertyNames" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "subschema is false", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/propertyNames" 111s # }, 111s # { 111s # "error": "not all property names are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/propertyNames" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 564 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 565 - propertyNames.json: "propertyNames with const" - "object with property foo is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 566 - propertyNames.json: "propertyNames with const" - "object with any other property is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/propertyNames/const" 111s # }, 111s # { 111s # "error": "not all property names are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/propertyNames" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/propertyNames/const" 111s # }, 111s # { 111s # "error": "not all property names are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/propertyNames" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 567 - propertyNames.json: "propertyNames with const" - "empty object is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 568 - propertyNames.json: "propertyNames with enum" - "object with property foo is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 569 - propertyNames.json: "propertyNames with enum" - "object with property foo and bar is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 570 - propertyNames.json: "propertyNames with enum" - "object with any other property is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "/baz", 111s # "keywordLocation": "/propertyNames/enum" 111s # }, 111s # { 111s # "error": "not all property names are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/propertyNames" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "/baz", 111s # "keywordLocation": "/propertyNames/enum" 111s # }, 111s # { 111s # "error": "not all property names are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/propertyNames" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 571 - propertyNames.json: "propertyNames with enum" - "empty object is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 572 - ref.json: "root pointer ref" - "match" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 573 - ref.json: "root pointer ref" - "recursive match" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 574 - ref.json: "root pointer ref" - "mismatch" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 575 - ref.json: "root pointer ref" - "recursive mismatch" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/additionalProperties", 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/foo/bar", 111s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "#/additionalProperties", 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/additionalProperties", 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/foo/bar", 111s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "#/additionalProperties", 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 576 - ref.json: "relative pointer ref to object" - "match" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 577 - ref.json: "relative pointer ref to object" - "mismatch" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/properties/foo/type", 111s # "error": "got boolean, not integer", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/properties/bar/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/properties/foo/type", 111s # "error": "got boolean, not integer", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/properties/bar/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 578 - ref.json: "relative pointer ref to array" - "match array" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 579 - ref.json: "relative pointer ref to array" - "mismatch array" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/items/0/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/items/1/$ref/type" 111s # }, 111s # { 111s # "error": "not all items are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/items/0/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "/1", 111s # "keywordLocation": "/items/1/$ref/type" 111s # }, 111s # { 111s # "error": "not all items are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 580 - ref.json: "escaped pointer ref" - "slash invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "/slash", 111s # "keywordLocation": "/properties/slash/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "/slash", 111s # "keywordLocation": "/properties/slash/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 581 - ref.json: "escaped pointer ref" - "tilde invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "/tilde", 111s # "keywordLocation": "/properties/tilde/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "/tilde", 111s # "keywordLocation": "/properties/tilde/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 582 - ref.json: "escaped pointer ref" - "percent invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "/percent", 111s # "keywordLocation": "/properties/percent/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "/percent", 111s # "keywordLocation": "/properties/percent/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 583 - ref.json: "escaped pointer ref" - "slash valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 584 - ref.json: "escaped pointer ref" - "tilde valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 585 - ref.json: "escaped pointer ref" - "percent valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 586 - ref.json: "nested refs" - "nested ref valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 587 - ref.json: "nested refs" - "nested ref invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/a/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/a/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 588 - ref.json: "ref overrides any sibling keywords" - "ref valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 589 - ref.json: "ref overrides any sibling keywords" - "ref valid, maxItems ignored" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 590 - ref.json: "ref overrides any sibling keywords" - "ref invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/reffed/type", 111s # "error": "got string, not array", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/reffed/type", 111s # "error": "got string, not array", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 591 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data does not validate" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 111s # "error": "got string, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 111s # "error": "got string, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 592 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data validates" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 593 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 594 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeInteger/minimum", 111s # "error": "value is less than 0", 111s # "instanceLocation": "/minLength", 111s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeIntegerDefault0/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "/minLength", 111s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/$ref/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeInteger/minimum", 111s # "error": "value is less than 0", 111s # "instanceLocation": "/minLength", 111s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeIntegerDefault0/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "/minLength", 111s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/$ref/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 595 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 596 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "/$ref", 111s # "keywordLocation": "/properties/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "/$ref", 111s # "keywordLocation": "/properties/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 597 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 598 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/is-string/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/$ref", 111s # "keywordLocation": "/properties/$ref/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/is-string/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/$ref", 111s # "keywordLocation": "/properties/$ref/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 599 - ref.json: "$ref to boolean schema true" - "any value is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 600 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/bool", 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/bool", 111s # "error": "subschema is false", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 601 - ref.json: "Recursive references between schemas" - "valid tree" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 602 - ref.json: "Recursive references between schemas" - "invalid tree" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 111s # "error": "got string, not number", 111s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 111s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "/nodes/0/subtree/nodes/0", 111s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/nodes/0/subtree/nodes", 111s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "/nodes/0/subtree", 111s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "/nodes/0", 111s # "keywordLocation": "/properties/nodes/items/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/nodes", 111s # "keywordLocation": "/properties/nodes/items" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 111s # "error": "got string, not number", 111s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 111s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "/nodes/0/subtree/nodes/0", 111s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/nodes/0/subtree/nodes", 111s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "/nodes/0/subtree", 111s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "/nodes/0", 111s # "keywordLocation": "/properties/nodes/items/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/nodes", 111s # "keywordLocation": "/properties/nodes/items" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 603 - ref.json: "refs with quote" - "object with numbers is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 604 - ref.json: "refs with quote" - "object with strings is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 111s # "error": "got string, not number", 111s # "instanceLocation": "/foo\"bar", 111s # "keywordLocation": "/properties/foo\"bar/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 111s # "error": "got string, not number", 111s # "instanceLocation": "/foo\"bar", 111s # "keywordLocation": "/properties/foo\"bar/$ref/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 605 - ref.json: "Location-independent identifier" - "match" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 606 - ref.json: "Location-independent identifier" - "mismatch" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/A/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/type" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/A/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/type" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 607 - ref.json: "Reference an anchor with a non-relative URI" - "match" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 608 - ref.json: "Reference an anchor with a non-relative URI" - "mismatch" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 609 - ref.json: "Location-independent identifier with base URI change in subschema" - "match" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 610 - ref.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s 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" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s 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" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/enum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 613 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 614 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo/bar", 111s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/allOf" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo/bar", 111s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/allOf" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 615 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/allOf" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/allOf" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 616 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 617 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo/bar", 111s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/allOf" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo/bar", 111s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/allOf" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 618 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/allOf" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/allOf" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 619 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 620 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 621 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 111s # "error": "value is less than 30", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/minimum" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 111s # "error": "value is less than 30", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/minimum" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 622 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 623 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 624 - ref.json: "URN base URI with NSS" - "a string is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 625 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 626 - ref.json: "URN base URI with r-component" - "a string is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 627 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 628 - ref.json: "URN base URI with q-component" - "a string is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 629 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 630 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 631 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 632 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 633 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/foo", 111s # "keywordLocation": "/properties/foo/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 634 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 635 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 636 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 637 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 111s # "error": "got string, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 111s # "error": "got string, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 638 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 639 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 111s # "error": "got string, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 111s # "error": "got string, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 640 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 641 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions//definitions//type", 111s # "error": "got string, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/type" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions//definitions//type", 111s # "error": "got string, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/type" 111s # }, 111s # { 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 642 - refRemote.json: "remote ref" - "remote ref valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 643 - refRemote.json: "remote ref" - "remote ref invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/$ref/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/$ref/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 644 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 645 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/subSchemas.json#/definitions/integer/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/$ref/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/subSchemas.json#/definitions/integer/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/$ref/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 646 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 647 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/subSchemas.json#/definitions/integer/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/$ref/$ref/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/subSchemas.json#/definitions/integer/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/$ref/$ref/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 648 - refRemote.json: "base URI change" - "base URI change ref valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 649 - refRemote.json: "base URI change" - "base URI change ref invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "/0/0", 111s # "keywordLocation": "/items/items/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/items" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "/0/0", 111s # "keywordLocation": "/items/items/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/0", 111s # "keywordLocation": "/items/items" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/items" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 650 - refRemote.json: "base URI change - change folder" - "number is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 651 - refRemote.json: "base URI change - change folder" - "string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "/list/0", 111s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/list", 111s # "keywordLocation": "/properties/list/$ref/items" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "/list/0", 111s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/list", 111s # "keywordLocation": "/properties/list/$ref/items" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 652 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 653 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "/list/0", 111s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/list", 111s # "keywordLocation": "/properties/list/$ref/items" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "/list/0", 111s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 111s # "error": "subschema is not valid against all items", 111s # "instanceLocation": "/list", 111s # "keywordLocation": "/properties/list/$ref/items" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 654 - refRemote.json: "root ref in remote ref" - "string is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 655 - refRemote.json: "root ref in remote ref" - "null is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 656 - refRemote.json: "root ref in remote ref" - "object is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/definitions/orNull/anyOf/0/type", 111s # "error": "got object, not null", 111s # "instanceLocation": "/name", 111s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/type", 111s # "error": "got object, not string", 111s # "instanceLocation": "/name", 111s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/definitions/orNull/anyOf", 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "/name", 111s # "keywordLocation": "/properties/name/$ref/anyOf" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/definitions/orNull/anyOf/0/type", 111s # "error": "got object, not null", 111s # "instanceLocation": "/name", 111s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/type", 111s # "error": "got object, not string", 111s # "instanceLocation": "/name", 111s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/definitions/orNull/anyOf", 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "/name", 111s # "keywordLocation": "/properties/name/$ref/anyOf" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 657 - refRemote.json: "remote ref with ref to definitions" - "invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/definitions/inner/properties/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/definitions/inner/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/allOf" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/definitions/inner/properties/bar/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/bar", 111s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/definitions/inner/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf/0/$ref/allOf" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 111s # "error": "subschema 0 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/allOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 658 - refRemote.json: "remote ref with ref to definitions" - "valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 659 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 660 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/locationIndependentIdentifier.json#/definitions/A/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/$ref/$ref/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/locationIndependentIdentifier.json#/definitions/A/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/$ref/$ref/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 661 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/name/foo", 111s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "/name", 111s # "keywordLocation": "/properties/name/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "/name/foo", 111s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "/name", 111s # "keywordLocation": "/properties/name/$ref/properties" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/properties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 662 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 663 - refRemote.json: "$ref to $ref finds location-independent $id" - "number is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 664 - refRemote.json: "$ref to $ref finds location-independent $id" - "non-number is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/detached-ref.json#/definitions/detached/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/$ref/$ref/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "http://localhost:1234/draft6/detached-ref.json#/definitions/detached/type", 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/$ref/$ref/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 665 - required.json: "required validation" - "present required property is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 666 - required.json: "required validation" - "non-present required property is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing property: foo", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 667 - required.json: "required validation" - "ignores arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 668 - required.json: "required validation" - "ignores strings" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 669 - required.json: "required validation" - "ignores other non-objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 670 - required.json: "required default validation" - "not required by default" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 671 - required.json: "required with empty array" - "property not required" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 672 - required.json: "required with escaped characters" - "object with all properties present is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 673 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 674 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 675 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 676 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing properties: __proto__, toString, constructor", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing properties: __proto__, toString, constructor", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 677 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing properties: toString, constructor", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing properties: toString, constructor", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 678 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing properties: __proto__, constructor", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing properties: __proto__, constructor", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 679 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing properties: __proto__, toString", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "object is missing properties: __proto__, toString", 111s # "instanceLocation": "", 111s # "keywordLocation": "/required" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 680 - required.json: "required properties whose names are Javascript object property names" - "all present" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 681 - type.json: "integer type matches integers" - "an integer is an integer" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 682 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 683 - type.json: "integer type matches integers" - "a float is not an integer" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 684 - type.json: "integer type matches integers" - "a string is not an integer" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 685 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 686 - type.json: "integer type matches integers" - "an object is not an integer" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 687 - type.json: "integer type matches integers" - "an array is not an integer" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got array, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got array, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 688 - type.json: "integer type matches integers" - "a boolean is not an integer" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got boolean, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got boolean, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 689 - type.json: "integer type matches integers" - "null is not an integer" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not integer", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 690 - type.json: "number type matches numbers" - "an integer is a number" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 691 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 692 - type.json: "number type matches numbers" - "a float is a number" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 693 - type.json: "number type matches numbers" - "a string is not a number" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 694 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 695 - type.json: "number type matches numbers" - "an object is not a number" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 696 - type.json: "number type matches numbers" - "an array is not a number" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got array, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got array, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 697 - type.json: "number type matches numbers" - "a boolean is not a number" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got boolean, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got boolean, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 698 - type.json: "number type matches numbers" - "null is not a number" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not number", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 699 - type.json: "string type matches strings" - "1 is not a string" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 700 - type.json: "string type matches strings" - "a float is not a string" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 701 - type.json: "string type matches strings" - "a string is a string" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 702 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 703 - type.json: "string type matches strings" - "an empty string is still a string" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 704 - type.json: "string type matches strings" - "an object is not a string" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 705 - type.json: "string type matches strings" - "an array is not a string" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got array, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got array, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 706 - type.json: "string type matches strings" - "a boolean is not a string" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got boolean, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got boolean, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 707 - type.json: "string type matches strings" - "null is not a string" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 708 - type.json: "object type matches objects" - "an integer is not an object" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 709 - type.json: "object type matches objects" - "a float is not an object" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 710 - type.json: "object type matches objects" - "a string is not an object" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 711 - type.json: "object type matches objects" - "an object is an object" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 712 - type.json: "object type matches objects" - "an array is not an object" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got array, not object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got array, not object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 713 - type.json: "object type matches objects" - "a boolean is not an object" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got boolean, not object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got boolean, not object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 714 - type.json: "object type matches objects" - "null is not an object" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 715 - type.json: "array type matches arrays" - "an integer is not an array" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not array", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not array", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 716 - type.json: "array type matches arrays" - "a float is not an array" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not array", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not array", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 717 - type.json: "array type matches arrays" - "a string is not an array" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not array", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not array", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 718 - type.json: "array type matches arrays" - "an object is not an array" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not array", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not array", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 719 - type.json: "array type matches arrays" - "an array is an array" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 720 - type.json: "array type matches arrays" - "a boolean is not an array" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got boolean, not array", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got boolean, not array", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 721 - type.json: "array type matches arrays" - "null is not an array" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not array", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not array", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 722 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not boolean", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not boolean", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 723 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not boolean", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not boolean", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 724 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not boolean", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not boolean", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 725 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not boolean", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not boolean", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 726 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not boolean", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not boolean", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 727 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not boolean", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not boolean", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 728 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got array, not boolean", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got array, not boolean", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 729 - type.json: "boolean type matches booleans" - "true is a boolean" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 730 - type.json: "boolean type matches booleans" - "false is a boolean" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 731 - type.json: "boolean type matches booleans" - "null is not a boolean" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not boolean", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not boolean", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 732 - type.json: "null type matches only the null object" - "an integer is not null" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 733 - type.json: "null type matches only the null object" - "a float is not null" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 734 - type.json: "null type matches only the null object" - "zero is not null" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 735 - type.json: "null type matches only the null object" - "a string is not null" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 736 - type.json: "null type matches only the null object" - "an empty string is not null" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 737 - type.json: "null type matches only the null object" - "an object is not null" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 738 - type.json: "null type matches only the null object" - "an array is not null" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got array, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got array, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 739 - type.json: "null type matches only the null object" - "true is not null" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got boolean, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got boolean, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 740 - type.json: "null type matches only the null object" - "false is not null" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got boolean, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got boolean, not null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 741 - type.json: "null type matches only the null object" - "null is null" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 742 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 743 - type.json: "multiple types can be specified in an array" - "a string is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 744 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not one of integer, string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got number, not one of integer, string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 745 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not one of integer, string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got object, not one of integer, string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 746 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got array, not one of integer, string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got array, not one of integer, string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 747 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got boolean, not one of integer, string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got boolean, not one of integer, string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 748 - type.json: "multiple types can be specified in an array" - "null is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not one of integer, string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not one of integer, string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 749 - type.json: "type as array with one item" - "string is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 750 - type.json: "type as array with one item" - "number is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 751 - type.json: "type: array or object" - "array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 752 - type.json: "type: array or object" - "object is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 753 - type.json: "type: array or object" - "number is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not one of array, object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not one of array, object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 754 - type.json: "type: array or object" - "string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not one of array, object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not one of array, object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 755 - type.json: "type: array or object" - "null is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not one of array, object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got null, not one of array, object", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 756 - type.json: "type: array, object or null" - "array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 757 - type.json: "type: array, object or null" - "object is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 758 - type.json: "type: array, object or null" - "null is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 759 - type.json: "type: array, object or null" - "number is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not one of array, object, null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not one of array, object, null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 760 - type.json: "type: array, object or null" - "string is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not one of array, object, null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not one of array, object, null", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 761 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 762 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 763 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 2 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 2 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 764 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 765 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 766 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 767 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 768 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 2 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 2 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 769 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 770 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 771 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 772 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 773 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 774 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 775 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 776 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 2 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 2 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 777 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 778 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 779 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 780 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 781 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 782 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 783 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 784 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 4 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 4 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 785 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 786 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 787 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 788 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 789 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 790 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 791 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 792 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 793 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 794 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 795 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 2 and 3 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 2 and 3 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 796 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 2 and 3 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 2 and 3 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 797 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 798 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 799 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 800 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "items at indices 0 and 1 are not unique", 111s # "instanceLocation": "", 111s # "keywordLocation": "/uniqueItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 801 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "additional item not permitted", 111s # "instanceLocation": "/2", 111s # "keywordLocation": "/additionalItems" 111s # }, 111s # { 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "additional item not permitted", 111s # "instanceLocation": "/2", 111s # "keywordLocation": "/additionalItems" 111s # }, 111s # { 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 802 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 803 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 804 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 805 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 806 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 807 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 808 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 809 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 810 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 811 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 812 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 813 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 814 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 815 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 816 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 817 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 818 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 819 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 820 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 821 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 822 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 823 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 824 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 825 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 826 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 827 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 828 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 829 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "additional item not permitted", 111s # "instanceLocation": "/2", 111s # "keywordLocation": "/additionalItems" 111s # }, 111s # { 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "additional item not permitted", 111s # "instanceLocation": "/2", 111s # "keywordLocation": "/additionalItems" 111s # }, 111s # { 111s # "error": "subschema is not valid against all additional items", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalItems" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 830 - optional/bignum.json: "integer" - "a bignum is an integer" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 831 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 832 - optional/bignum.json: "number" - "a bignum is a number" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 833 - optional/bignum.json: "number" - "a negative bignum is a number" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 834 - optional/bignum.json: "string" - "a bignum is not a string" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got integer, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/type" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 835 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 836 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 111s # "instanceLocation": "", 111s # "keywordLocation": "/exclusiveMaximum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 111s # "instanceLocation": "", 111s # "keywordLocation": "/exclusiveMaximum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 837 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 838 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 111s # "instanceLocation": "", 111s # "keywordLocation": "/exclusiveMinimum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 111s # "instanceLocation": "", 111s # "keywordLocation": "/exclusiveMinimum" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 839 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 840 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 841 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 842 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 843 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 844 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 845 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 846 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 847 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true # 111s 1..1 111s } 111s 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" 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s not ok 1 - evaluation result is incorrect # 111s # Failed test (with amnesty) 'evaluation result is incorrect' 111s # at t/zzz-acceptance-draft6.t line 51. 111s # expected false; got true 111s # schema: { 111s # "pattern": "^\\d$", 111s # "type": "string" 111s # } 111s # data: "߀" 111s # result: { 111s # "valid": true 111s # } 111s 1..1 111s } 111s 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" 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s not ok 1 - evaluation result is incorrect # 111s # Failed test (with amnesty) 'evaluation result is incorrect' 111s # at t/zzz-acceptance-draft6.t line 51. 111s # expected false; got true 111s # schema: { 111s # "pattern": "^\\d$", 111s # "type": "string" 111s # } 111s # data: "߀" 111s # result: { 111s # "valid": true 111s # } 111s 1..1 111s } 111s 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" 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false # 111s 1..1 111s } 111s 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" 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s not ok 1 - evaluation result is incorrect # 111s # Failed test (with amnesty) 'evaluation result is incorrect' 111s # at t/zzz-acceptance-draft6.t line 51. 111s # expected true; got false 111s # schema: { 111s # "pattern": "^\\D$", 111s # "type": "string" 111s # } 111s # data: "߀" 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s 1..1 111s } 111s 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" 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s not ok 1 - evaluation result is incorrect # 111s # Failed test (with amnesty) 'evaluation result is incorrect' 111s # at t/zzz-acceptance-draft6.t line 51. 111s # expected true; got false 111s # schema: { 111s # "pattern": "^\\D$", 111s # "type": "string" 111s # } 111s # data: "߀" 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s 1..1 111s } 111s ok 853 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true # 111s 1..1 111s } 111s 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" 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s not ok 1 - evaluation result is incorrect # 111s # Failed test (with amnesty) 'evaluation result is incorrect' 111s # at t/zzz-acceptance-draft6.t line 51. 111s # expected false; got true 111s # schema: { 111s # "pattern": "^\\w$", 111s # "type": "string" 111s # } 111s # data: "é" 111s # result: { 111s # "valid": true 111s # } 111s 1..1 111s } 111s 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" 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false # 111s 1..1 111s } 111s 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" 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s not ok 1 - evaluation result is incorrect # 111s # Failed test (with amnesty) 'evaluation result is incorrect' 111s # at t/zzz-acceptance-draft6.t line 51. 111s # expected true; got false 111s # schema: { 111s # "pattern": "^\\W$", 111s # "type": "string" 111s # } 111s # data: "é" 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s 1..1 111s } 111s ok 857 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 858 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 859 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 860 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 861 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 862 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s not ok 1 - evaluation result is incorrect # 111s # Failed test (with amnesty) 'evaluation result is incorrect' 111s # at t/zzz-acceptance-draft6.t line 51. 111s # expected true; got false 111s # schema: { 111s # "pattern": "^\\s$", 111s # "type": "string" 111s # } 111s # data: "" 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s 1..1 111s } 111s ok 863 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 864 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 865 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 866 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 867 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 868 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 869 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 870 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 871 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 872 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s 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" 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s not ok 1 - evaluation result is incorrect # 111s # Failed test (with amnesty) 'evaluation result is incorrect' 111s # at t/zzz-acceptance-draft6.t line 51. 111s # expected false; got true 111s # schema: { 111s # "pattern": "^\\S$", 111s # "type": "string" 111s # } 111s # data: "" 111s # result: { 111s # "valid": true 111s # } 111s 1..1 111s } 111s ok 874 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 875 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 876 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 877 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 878 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 879 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 880 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 881 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 882 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 883 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s 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" 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s not ok 1 - evaluation result is incorrect # 111s # Failed test (with amnesty) 'evaluation result is incorrect' 111s # at t/zzz-acceptance-draft6.t line 51. 111s # expected false; got true 111s # schema: { 111s # "pattern": "\\wcole" 111s # } 111s # 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." 111s # result: { 111s # "valid": true 111s # } 111s 1..1 111s } 111s 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" 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s not ok 1 - evaluation result is incorrect # 111s # Failed test (with amnesty) 'evaluation result is incorrect' 111s # at t/zzz-acceptance-draft6.t line 51. 111s # expected false; got true 111s # schema: { 111s # "pattern": "\\wcole" 111s # } 111s # 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." 111s # result: { 111s # "valid": true 111s # } 111s 1..1 111s } 111s ok 886 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 887 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 888 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 889 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 890 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 891 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s 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" 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s not ok 1 - evaluation result is incorrect # 111s # Failed test (with amnesty) 'evaluation result is incorrect' 111s # at t/zzz-acceptance-draft6.t line 51. 111s # expected false; got true 111s # schema: { 111s # "pattern": "^\\d+$" 111s # } 111s # data: "৪২" 111s # result: { 111s # "valid": true 111s # } 111s 1..1 111s } 111s ok 893 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 894 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 895 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 896 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 897 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 898 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 899 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/L'ÉCOLE", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/L'ÉCOLE", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 900 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s 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" 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s not ok 1 - evaluation result is incorrect # 111s # Failed test (with amnesty) 'evaluation result is incorrect' 111s # at t/zzz-acceptance-draft6.t line 51. 111s # expected false; got true 111s # schema: { 111s # "additionalProperties": false, 111s # "patternProperties": { 111s # "\\wcole": true 111s # }, 111s # "type": "object" 111s # } 111s # data: { 111s # "l'école": "pas de vraie vie" 111s # } 111s # result: { 111s # "valid": true 111s # } 111s 1..1 111s } 111s 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" 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s not ok 1 - evaluation result is incorrect # 111s # Failed test (with amnesty) 'evaluation result is incorrect' 111s # at t/zzz-acceptance-draft6.t line 51. 111s # expected false; got true 111s # schema: { 111s # "additionalProperties": false, 111s # "patternProperties": { 111s # "\\wcole": true 111s # }, 111s # "type": "object" 111s # } 111s # data: { 111s # "l'école": "pas de vraie vie" 111s # } 111s # result: { 111s # "valid": true 111s # } 111s 1..1 111s } 111s ok 903 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/L'ÉCOLE", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/L'ÉCOLE", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 904 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/l'école", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/l'école", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 905 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/l'école", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/l'école", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 906 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 907 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 908 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/-%#", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/-%#", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s 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" 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s not ok 1 - evaluation result is incorrect # 111s # Failed test (with amnesty) 'evaluation result is incorrect' 111s # at t/zzz-acceptance-draft6.t line 51. 111s # expected false; got true 111s # schema: { 111s # "additionalProperties": false, 111s # "patternProperties": { 111s # "^\\d+$": true 111s # }, 111s # "type": "object" 111s # } 111s # data: { 111s # "৪২": "khajit has wares if you have coin" 111s # } 111s # result: { 111s # "valid": true 111s # } 111s 1..1 111s } 111s ok 910 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 911 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/-%#", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "additional property not permitted", 111s # "instanceLocation": "/-%#", 111s # "keywordLocation": "/additionalProperties" 111s # }, 111s # { 111s # "error": "not all additional properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/additionalProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 912 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 913 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s # 111s ok 914 - optional/id.json: "id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 915 - optional/id.json: "id inside an enum is not a real identifier" - "match $ref to id" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 916 - optional/id.json: "id inside an enum is not a real identifier" - "no match on enum or $ref to id" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/$ref/enum" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/1/$ref/type" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/$ref/enum" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/1/$ref/type" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 917 - optional/id.json: "non-schema object containing a plain-name $id property" - "skip traversing definition for a valid result" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 918 - optional/id.json: "non-schema object containing a plain-name $id property" - "const at const_not_anchor does not match" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/const" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 111s # }, 111s # { 111s # "error": "subschema 1 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1/allOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/const" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 111s # }, 111s # { 111s # "error": "subschema 1 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1/allOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 919 - optional/id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 920 - optional/id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/const" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 111s # }, 111s # { 111s # "error": "subschema 1 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1/allOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/0/const" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 111s # "error": "value does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 111s # }, 111s # { 111s # "error": "subschema 1 is not valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf/1/allOf" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/oneOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s ok 921 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 922 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 923 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 924 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 925 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 926 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 927 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "pattern does not match", 111s # "instanceLocation": "", 111s # "keywordLocation": "/pattern" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 928 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 929 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 930 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 931 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/🐲", 111s # "keywordLocation": "/patternProperties/^🐲*$/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/🐲", 111s # "keywordLocation": "/patternProperties/^🐲*$/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 932 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 111s # result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/🐲🐲", 111s # "keywordLocation": "/patternProperties/^🐲*$/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "error": "got string, not integer", 111s # "instanceLocation": "/🐲🐲", 111s # "keywordLocation": "/patternProperties/^🐲*$/type" 111s # }, 111s # { 111s # "error": "not all properties are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/patternProperties" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s 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" { 111s # result: { 111s # "valid": true 111s # } 111s # short-circuited result: { 111s # "valid": true 111s # } 111s ok 1 - test passes: data is valid: true 111s 1..1 111s } 111s ok 934 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/$ref/not" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/1/$ref/not" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 111s # "error": "got null, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/2/$ref/type" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/$ref/not" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/1/$ref/not" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 111s # "error": "got null, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/2/$ref/type" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s ok 935 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 111s # result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/$ref/not" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/1/$ref/not" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/2/$ref/type" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s # short-circuited result: { 111s # "errors": [ 111s # { 111s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/0/$ref/not" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 111s # "error": "subschema is valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/1/$ref/not" 111s # }, 111s # { 111s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 111s # "error": "got integer, not string", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf/2/$ref/type" 111s # }, 111s # { 111s # "error": "no subschemas are valid", 111s # "instanceLocation": "", 111s # "keywordLocation": "/anyOf" 111s # } 111s # ], 111s # "valid": false 111s # } 111s ok 1 - test passes: data is valid: false 111s 1..1 111s } 111s # 111s # generated with: Test::JSON::Schema::Acceptance 1.029 111s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 111s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 111s # specification version: draft6 111s # optional tests included: yes 111s # skipping directory: optional/format 111s # 111s # filename pass todo-fail fail 111s # --------------------------------------------------------------- 111s # additionalItems.json 20 0 0 111s # additionalProperties.json 16 0 0 111s # allOf.json 30 0 0 111s # anyOf.json 18 0 0 111s # boolean_schema.json 18 0 0 111s # const.json 50 0 0 111s # contains.json 19 0 0 111s # default.json 7 0 0 111s # definitions.json 2 0 0 111s # dependencies.json 36 0 0 111s # enum.json 45 0 0 111s # exclusiveMaximum.json 4 0 0 111s # exclusiveMinimum.json 4 0 0 111s # format.json 54 0 0 111s # infinite-loop-detection.json 2 0 0 111s # items.json 28 0 0 111s # maxItems.json 6 0 0 111s # maxLength.json 7 0 0 111s # maxProperties.json 10 0 0 111s # maximum.json 8 0 0 111s # minItems.json 6 0 0 111s # minLength.json 7 0 0 111s # minProperties.json 8 0 0 111s # minimum.json 11 0 0 111s # multipleOf.json 10 0 0 111s # not.json 38 0 0 111s # oneOf.json 27 0 0 111s # pattern.json 9 0 0 111s # patternProperties.json 23 0 0 111s # properties.json 28 0 0 111s # propertyNames.json 20 0 0 111s # ref.json 70 0 0 111s # refRemote.json 23 0 0 111s # required.json 16 0 0 111s # type.json 80 0 0 111s # uniqueItems.json 69 0 0 111s # optional/bignum.json 9 0 0 111s # optional/ecmascript-regex.json 60 14 0 111s # optional/float-overflow.json 1 0 0 111s # optional/id.json 7 0 0 111s # optional/non-bmp-regex.json 12 0 0 111s # optional/unknownKeyword.json 3 0 0 111s # --------------------------------------------------------------- 111s # TOTAL 921 14 0 111s # 111s # Congratulations, all non-optional tests are passing! 111s # 111s ok 936 - no leaks in the main evaluator object 111s ok 937 - no leaks in the short-circuiting evaluator object 111s 1..937 111s ok 112s t/zzz-acceptance-draft7-format.t ........ 112s # Seeded srand with seed '20251102' from local date. 112s # 112s # AUTHOR_TESTING: 112s # AUTOMATED_TESTING: 1 112s # EXTENDED_TESTING: 112s # NO_TODO: 112s # TEST_DIR: 112s # NO_SHORT_CIRCUIT: 112s # 112s # Using JSON decoder: Cpanel::JSON::XS 4.39 112s # 112s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft7/optional/format against draft7... 112s # 112s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date-time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s # 112s ok 26 - date.json: "validation of date strings" - "all string formats ignore integers" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 27 - date.json: "validation of date strings" - "all string formats ignore floats" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 28 - date.json: "validation of date strings" - "all string formats ignore objects" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 29 - date.json: "validation of date strings" - "all string formats ignore arrays" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 30 - date.json: "validation of date strings" - "all string formats ignore booleans" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 31 - date.json: "validation of date strings" - "all string formats ignore nulls" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 32 - date.json: "validation of date strings" - "a valid date string" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 33 - date.json: "validation of date strings" - "a valid date string with 31 days in January" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 34 - date.json: "validation of date strings" - "a invalid date string with 32 days in January" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 35 - date.json: "validation of date strings" - "a valid date string with 28 days in February (normal)" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 36 - date.json: "validation of date strings" - "a invalid date string with 29 days in February (normal)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 37 - date.json: "validation of date strings" - "a valid date string with 29 days in February (leap)" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 38 - date.json: "validation of date strings" - "a invalid date string with 30 days in February (leap)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 39 - date.json: "validation of date strings" - "a valid date string with 31 days in March" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 40 - date.json: "validation of date strings" - "a invalid date string with 32 days in March" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 41 - date.json: "validation of date strings" - "a valid date string with 30 days in April" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 42 - date.json: "validation of date strings" - "a invalid date string with 31 days in April" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 43 - date.json: "validation of date strings" - "a valid date string with 31 days in May" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 44 - date.json: "validation of date strings" - "a invalid date string with 32 days in May" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 45 - date.json: "validation of date strings" - "a valid date string with 30 days in June" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 46 - date.json: "validation of date strings" - "a invalid date string with 31 days in June" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 47 - date.json: "validation of date strings" - "a valid date string with 31 days in July" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 48 - date.json: "validation of date strings" - "a invalid date string with 32 days in July" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 49 - date.json: "validation of date strings" - "a valid date string with 31 days in August" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 50 - date.json: "validation of date strings" - "a invalid date string with 32 days in August" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 51 - date.json: "validation of date strings" - "a valid date string with 30 days in September" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 52 - date.json: "validation of date strings" - "a invalid date string with 31 days in September" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 53 - date.json: "validation of date strings" - "a valid date string with 31 days in October" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 54 - date.json: "validation of date strings" - "a invalid date string with 32 days in October" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 55 - date.json: "validation of date strings" - "a valid date string with 30 days in November" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 56 - date.json: "validation of date strings" - "a invalid date string with 31 days in November" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 57 - date.json: "validation of date strings" - "a valid date string with 31 days in December" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 58 - date.json: "validation of date strings" - "a invalid date string with 32 days in December" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 59 - date.json: "validation of date strings" - "a invalid date string with invalid month" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 60 - date.json: "validation of date strings" - "an invalid date string" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 61 - date.json: "validation of date strings" - "only RFC3339 not all of ISO 8601 are valid" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 62 - date.json: "validation of date strings" - "non-padded month dates are not valid" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 63 - date.json: "validation of date strings" - "non-padded day dates are not valid" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 64 - date.json: "validation of date strings" - "invalid month" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 65 - date.json: "validation of date strings" - "invalid month-day combination" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 66 - date.json: "validation of date strings" - "2021 is not a leap year" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 67 - date.json: "validation of date strings" - "2020 is a leap year" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 68 - date.json: "validation of date strings" - "invalid non-ASCII '৪' (a Bengali 4)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 69 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 70 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 71 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 72 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid date string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s # 112s ok 73 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 74 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 75 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 76 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 77 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 78 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 79 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 80 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid email string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid email string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 81 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 82 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 83 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 84 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid email string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid email string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 85 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid email string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid email string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 86 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 87 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid email string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid email string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s # 112s ok 88 - hostname.json: "validation of host names" - "all string formats ignore integers" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 89 - hostname.json: "validation of host names" - "all string formats ignore floats" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 90 - hostname.json: "validation of host names" - "all string formats ignore objects" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 91 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 92 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 93 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 94 - hostname.json: "validation of host names" - "a valid host name" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 95 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 96 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 97 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 98 - hostname.json: "validation of host names" - "a host name with a component too long" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 99 - hostname.json: "validation of host names" - "starts with hyphen" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 100 - hostname.json: "validation of host names" - "ends with hyphen" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 101 - hostname.json: "validation of host names" - "starts with underscore" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 102 - hostname.json: "validation of host names" - "ends with underscore" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 103 - hostname.json: "validation of host names" - "contains underscore" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 104 - hostname.json: "validation of host names" - "maximum label length" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 105 - hostname.json: "validation of host names" - "exceeds maximum label length" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 106 - hostname.json: "validation of host names" - "single label" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 107 - hostname.json: "validation of host names" - "single label with hyphen" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 108 - hostname.json: "validation of host names" - "single label with digits" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 109 - hostname.json: "validation of host names" - "single label ending with digit" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 110 - hostname.json: "validation of host names" - "empty string" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 111 - hostname.json: "validation of host names" - "single dot" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s # 112s ok 112 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore integers" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 113 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore floats" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 114 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore objects" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 115 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore arrays" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 116 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore booleans" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 117 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore nulls" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 118 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid idn e-mail (example@example.test in Hangul)" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 119 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid idn e-mail address" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-email string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-email string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 120 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid e-mail address" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 121 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid e-mail address" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-email string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-email string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s # 112s ok 122 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 123 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 124 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 125 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 126 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 127 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s 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" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s 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" 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false # 112s 1..1 112s } 112s 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" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "idn-hostname" 112s # } 112s # data: "실〮례.테스트" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s 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" 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false # 112s 1..1 112s } 112s ok 132 - idn-hostname.json: "validation of internationalized host names" - "invalid label, correct Punycode" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false # 112s 1..1 112s } 112s ok 133 - idn-hostname.json: "validation of internationalized host names" - "valid Chinese Punycode" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 134 - idn-hostname.json: "validation of internationalized host names" - "invalid Punycode" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "idn-hostname" 112s # } 112s # data: "xn--X" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s 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" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "idn-hostname" 112s # } 112s # data: "XN--aa---o47jg78q" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s ok 136 - idn-hostname.json: "validation of internationalized host names" - "U-label starts with a dash" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false # 112s 1..1 112s } 112s ok 137 - idn-hostname.json: "validation of internationalized host names" - "U-label ends with a dash" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false # 112s 1..1 112s } 112s 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" 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false # 112s 1..1 112s } 112s ok 139 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Spacing Combining Mark" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false # 112s 1..1 112s } 112s ok 140 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Nonspacing Mark" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false # 112s 1..1 112s } 112s ok 141 - idn-hostname.json: "validation of internationalized host names" - "Begins with an Enclosing Mark" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false # 112s 1..1 112s } 112s 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" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s 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" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s 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" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "idn-hostname" 112s # } 112s # data: "ـߺ" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s 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" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "idn-hostname" 112s # } 112s # data: "〱〲〳〴〵〮〯〻" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s ok 146 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no preceding 'l'" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "idn-hostname" 112s # } 112s # data: "a·l" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s ok 147 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing preceding" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "idn-hostname" 112s # } 112s # data: "·l" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s ok 148 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no following 'l'" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "idn-hostname" 112s # } 112s # data: "l·a" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s ok 149 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing following" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "idn-hostname" 112s # } 112s # data: "l·" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s ok 150 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with surrounding 'l's" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 151 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by Greek" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "idn-hostname" 112s # } 112s # data: "α͵S" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s ok 152 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by anything" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "idn-hostname" 112s # } 112s # data: "α͵" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s ok 153 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA followed by Greek" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 154 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false # 112s 1..1 112s } 112s ok 155 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by anything" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "idn-hostname" 112s # } 112s # data: "׳ב" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s ok 156 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 157 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false # 112s 1..1 112s } 112s ok 158 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by anything" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "idn-hostname" 112s # } 112s # data: "״ב" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s ok 159 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s 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" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "idn-hostname" 112s # } 112s # data: "def・abc" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s ok 161 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no other characters" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "idn-hostname" 112s # } 112s # data: "・" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s ok 162 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Hiragana" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 163 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Katakana" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 164 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Han" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s 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" 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false # 112s 1..1 112s } 112s 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" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s 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" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 168 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by Virama" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false # 112s 1..1 112s } 112s ok 169 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by anything" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false # 112s 1..1 112s } 112s ok 170 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 171 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s 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" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 173 - idn-hostname.json: "validation of internationalized host names" - "single label" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 174 - idn-hostname.json: "validation of internationalized host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 175 - idn-hostname.json: "validation of internationalized host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 176 - idn-hostname.json: "validation of internationalized host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 177 - idn-hostname.json: "validation of internationalized host names" - "empty string" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false # 112s 1..1 112s } 112s ok 178 - idn-hostname.json: "validation of separators in internationalized host names" - "single dot" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 179 - idn-hostname.json: "validation of separators in internationalized host names" - "single ideographic full stop" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 180 - idn-hostname.json: "validation of separators in internationalized host names" - "single fullwidth full stop" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 181 - idn-hostname.json: "validation of separators in internationalized host names" - "single halfwidth ideographic full stop" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid idn-hostname string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 182 - idn-hostname.json: "validation of separators in internationalized host names" - "dot as label separator" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 183 - idn-hostname.json: "validation of separators in internationalized host names" - "ideographic full stop as label separator" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 184 - idn-hostname.json: "validation of separators in internationalized host names" - "fullwidth full stop as label separator" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 185 - idn-hostname.json: "validation of separators in internationalized host names" - "halfwidth ideographic full stop as label separator" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s # 112s ok 186 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 187 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 188 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 189 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 190 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 191 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 192 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 193 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv4 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv4 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 194 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv4 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv4 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 195 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv4 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv4 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 196 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv4 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv4 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 197 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv4 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv4 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 198 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv4 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv4 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 199 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 200 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv4 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv4 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 201 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv4 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv4 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s # 112s ok 202 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 203 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 204 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 205 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 206 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 207 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 208 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 209 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 210 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 211 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 212 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 213 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 214 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 215 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 216 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 217 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 218 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 219 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 220 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 221 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 222 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 223 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 224 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 225 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 226 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 227 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 228 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 229 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 230 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 231 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 232 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 233 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 234 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 235 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 236 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 237 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 238 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 239 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 240 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 241 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid ipv6 string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s # 112s ok 242 - iri-reference.json: "validation of IRI References" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 243 - iri-reference.json: "validation of IRI References" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 244 - iri-reference.json: "validation of IRI References" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 245 - iri-reference.json: "validation of IRI References" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 246 - iri-reference.json: "validation of IRI References" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 247 - iri-reference.json: "validation of IRI References" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 248 - iri-reference.json: "validation of IRI References" - "a valid IRI" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 249 - iri-reference.json: "validation of IRI References" - "a valid protocol-relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 250 - iri-reference.json: "validation of IRI References" - "a valid relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 251 - iri-reference.json: "validation of IRI References" - "an invalid IRI Reference" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "iri-reference" 112s # } 112s # data: "\\\\WINDOWS\\filëßåré" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s ok 252 - iri-reference.json: "validation of IRI References" - "a valid IRI Reference" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 253 - iri-reference.json: "validation of IRI References" - "a valid IRI fragment" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 254 - iri-reference.json: "validation of IRI References" - "an invalid IRI fragment" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "iri-reference" 112s # } 112s # data: "#ƒräg\\mênt" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s # 112s ok 255 - iri.json: "validation of IRIs" - "all string formats ignore integers" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 256 - iri.json: "validation of IRIs" - "all string formats ignore floats" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 257 - iri.json: "validation of IRIs" - "all string formats ignore objects" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 258 - iri.json: "validation of IRIs" - "all string formats ignore arrays" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 259 - iri.json: "validation of IRIs" - "all string formats ignore booleans" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 260 - iri.json: "validation of IRIs" - "all string formats ignore nulls" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 261 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 262 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag and parentheses" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 263 - iri.json: "validation of IRIs" - "a valid IRI with URL-encoded stuff" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 264 - iri.json: "validation of IRIs" - "a valid IRI with many special characters" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 265 - iri.json: "validation of IRIs" - "a valid IRI based on IPv6" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 266 - iri.json: "validation of IRIs" - "an invalid IRI based on IPv6" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "iri" 112s # } 112s # data: "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s ok 267 - iri.json: "validation of IRIs" - "an invalid relative IRI Reference" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid iri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid iri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 268 - iri.json: "validation of IRIs" - "an invalid IRI" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid iri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid iri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 269 - iri.json: "validation of IRIs" - "an invalid IRI though valid IRI reference" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid iri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid iri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s # 112s ok 270 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 271 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 272 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 273 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 274 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 275 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 276 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 277 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 278 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 279 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 280 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 281 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 282 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 283 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 284 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 285 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 286 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 287 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 288 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 289 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 290 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 291 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 292 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 293 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 294 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 295 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 296 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 297 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 298 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 299 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 300 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 301 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 302 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 303 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 304 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 305 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 306 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 307 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s # 112s ok 308 - regex.json: "validation of regular expressions" - "all string formats ignore integers" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 309 - regex.json: "validation of regular expressions" - "all string formats ignore floats" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 310 - regex.json: "validation of regular expressions" - "all string formats ignore objects" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 311 - regex.json: "validation of regular expressions" - "all string formats ignore arrays" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 312 - regex.json: "validation of regular expressions" - "all string formats ignore booleans" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 313 - regex.json: "validation of regular expressions" - "all string formats ignore nulls" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 314 - regex.json: "validation of regular expressions" - "a valid regular expression" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 315 - regex.json: "validation of regular expressions" - "a regular expression with unclosed parens is invalid" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid regex string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid regex string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s # 112s ok 316 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore integers" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 317 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore floats" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 318 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore objects" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 319 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore arrays" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 320 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore booleans" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 321 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore nulls" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 322 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid upwards RJP" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 323 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid downwards RJP" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 324 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid up and then down RJP, with array index" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 325 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid RJP taking the member or index name" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 326 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "an invalid RJP that is a valid JSON Pointer" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid relative-json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid relative-json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 327 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "negative prefix" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid relative-json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid relative-json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 328 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "explicit positive prefix" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid relative-json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid relative-json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 329 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "\#\# is not a valid json-pointer" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid relative-json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid relative-json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 330 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus json-pointer" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid relative-json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid relative-json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 331 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus octothorpe" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid relative-json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid relative-json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 332 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "empty string" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid relative-json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid relative-json-pointer string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 333 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "multi-digit integer prefix" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s # 112s ok 334 - time.json: "validation of time strings" - "all string formats ignore integers" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 335 - time.json: "validation of time strings" - "all string formats ignore floats" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 336 - time.json: "validation of time strings" - "all string formats ignore objects" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 337 - time.json: "validation of time strings" - "all string formats ignore arrays" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 338 - time.json: "validation of time strings" - "all string formats ignore booleans" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 339 - time.json: "validation of time strings" - "all string formats ignore nulls" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 340 - time.json: "validation of time strings" - "a valid time string" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 341 - time.json: "validation of time strings" - "invalid time string with extra leading zeros" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 342 - time.json: "validation of time strings" - "invalid time string with no leading zero for single digit" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 343 - time.json: "validation of time strings" - "hour, minute, second must be two digits" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 344 - time.json: "validation of time strings" - "a valid time string with leap second, Zulu" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 345 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 346 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 347 - time.json: "validation of time strings" - "valid leap second, zero time-offset" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 348 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong hour)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 349 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong minute)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 350 - time.json: "validation of time strings" - "valid leap second, positive time-offset" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 351 - time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 352 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 353 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 354 - time.json: "validation of time strings" - "valid leap second, negative time-offset" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 355 - time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 356 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 357 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 358 - time.json: "validation of time strings" - "a valid time string with second fraction" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 359 - time.json: "validation of time strings" - "a valid time string with precise second fraction" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 360 - time.json: "validation of time strings" - "a valid time string with plus offset" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 361 - time.json: "validation of time strings" - "a valid time string with minus offset" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 362 - time.json: "validation of time strings" - "hour, minute in time-offset must be two digits" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 363 - time.json: "validation of time strings" - "a valid time string with case-insensitive Z" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 364 - time.json: "validation of time strings" - "an invalid time string with invalid hour" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 365 - time.json: "validation of time strings" - "an invalid time string with invalid minute" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 366 - time.json: "validation of time strings" - "an invalid time string with invalid second" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 367 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong hour)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 368 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong minute)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 369 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset hour" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 370 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset minute" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 371 - time.json: "validation of time strings" - "an invalid time string with invalid time with both Z and numoffset" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 372 - time.json: "validation of time strings" - "an invalid offset indicator" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 373 - time.json: "validation of time strings" - "only RFC3339 not all of ISO 8601 are valid" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 374 - time.json: "validation of time strings" - "no time offset" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 375 - time.json: "validation of time strings" - "no time offset with second fraction" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 376 - time.json: "validation of time strings" - "invalid non-ASCII '২' (a Bengali 2)" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 377 - time.json: "validation of time strings" - "offset not starting with plus or minus" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 378 - time.json: "validation of time strings" - "contains letters" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid time string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s # 112s ok 379 - unknown.json: "unknown format" - "unknown formats ignore integers" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 380 - unknown.json: "unknown format" - "unknown formats ignore floats" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 381 - unknown.json: "unknown format" - "unknown formats ignore objects" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 382 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 383 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 384 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 385 - unknown.json: "unknown format" - "unknown formats ignore strings" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s # 112s ok 386 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 387 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 388 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 389 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 390 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 391 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 392 - uri-reference.json: "validation of URI References" - "a valid URI" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 393 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 394 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 395 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid uri-reference string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid uri-reference string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 396 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 397 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 398 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid uri-reference string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid uri-reference string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s # 112s ok 399 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 400 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 401 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 402 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 403 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 404 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 405 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 406 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "uri-template" 112s # } 112s # data: "http://example.com/dictionary/{term:1}/{term" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s ok 407 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s ok 408 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true # 112s 1..1 112s } 112s # 112s ok 409 - uri.json: "validation of URIs" - "all string formats ignore integers" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 410 - uri.json: "validation of URIs" - "all string formats ignore floats" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 411 - uri.json: "validation of URIs" - "all string formats ignore objects" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 412 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 413 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 414 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 415 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 416 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 417 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 418 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 419 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 420 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 421 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 422 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 423 - uri.json: "validation of URIs" - "a valid URL " { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 424 - uri.json: "validation of URIs" - "a valid mailto URI" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 425 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 426 - uri.json: "validation of URIs" - "a valid tel URI" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 427 - uri.json: "validation of URIs" - "a valid URN" { 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s ok 1 - test passes: data is valid: true 112s 1..1 112s } 112s ok 428 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid uri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid uri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 429 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid uri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid uri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 430 - uri.json: "validation of URIs" - "an invalid URI" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid uri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid uri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 431 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid uri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid uri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 432 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid uri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid uri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 433 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 112s # result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid uri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s # short-circuited result: { 112s # "errors": [ 112s # { 112s # "error": "not a valid uri string", 112s # "instanceLocation": "", 112s # "keywordLocation": "/format" 112s # } 112s # ], 112s # "valid": false 112s # } 112s ok 1 - test passes: data is valid: false 112s 1..1 112s } 112s ok 434 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 112s # result: { 112s # "valid": true 112s # } 112s # short-circuited result: { 112s # "valid": true 112s # } 112s not ok 1 - evaluation result is incorrect # 112s # Failed test (with amnesty) 'evaluation result is incorrect' 112s # at t/zzz-acceptance-draft7-format.t line 70. 112s # expected false; got true 112s # schema: { 112s # "format": "uri" 112s # } 112s # data: "bar,baz:foo" 112s # result: { 112s # "valid": true 112s # } 112s 1..1 112s } 112s # 112s # generated with: Test::JSON::Schema::Acceptance 1.029 112s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 112s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 112s # specification version: draft7 112s # using custom test directory: /optional/format 112s # optional tests included: yes 112s # 112s # filename pass todo-fail fail 112s # --------------------------------------------------------------- 112s # date-time.json 25 0 0 112s # date.json 47 0 0 112s # email.json 15 0 0 112s # hostname.json 24 0 0 112s # idn-email.json 10 0 0 112s # idn-hostname.json 49 15 0 112s # ipv4.json 16 0 0 112s # ipv6.json 40 0 0 112s # iri-reference.json 11 2 0 112s # iri.json 14 1 0 112s # json-pointer.json 38 0 0 112s # regex.json 8 0 0 112s # relative-json-pointer.json 18 0 0 112s # time.json 45 0 0 112s # unknown.json 7 0 0 112s # uri-reference.json 13 0 0 112s # uri-template.json 9 1 0 112s # uri.json 25 1 0 112s # --------------------------------------------------------------- 112s # TOTAL 414 20 0 112s # 112s # Congratulations, all non-optional tests are passing! 112s # 112s ok 435 - no leaks in the main evaluator object 112s ok 436 - no leaks in the short-circuiting evaluator object 112s 1..436 112s ok 115s t/zzz-acceptance-draft7.t ............... 115s # Seeded srand with seed '20251102' from local date. 115s # 115s # AUTHOR_TESTING: 115s # AUTOMATED_TESTING: 1 115s # EXTENDED_TESTING: 115s # NO_TODO: 115s # TEST_DIR: 115s # NO_SHORT_CIRCUIT: 115s # 115s # Using JSON decoder: Cpanel::JSON::XS 4.39 115s # 115s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 115s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft7 against draft7... 115s # 115s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/3", 115s # "keywordLocation": "/additionalItems/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/3", 115s # "keywordLocation": "/additionalItems/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "valid with a array of type integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 4 - additionalItems.json: "when items is schema, additionalItems does nothing" - "invalid with a array of mixed types" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/items/type" 115s # }, 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/2", 115s # "keywordLocation": "/items/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/items/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 5 - additionalItems.json: "when items is schema, boolean additionalItems does nothing" - "all items match schema" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 9 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 10 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "additional item not permitted", 115s # "instanceLocation": "/3", 115s # "keywordLocation": "/additionalItems" 115s # }, 115s # { 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "additional item not permitted", 115s # "instanceLocation": "/3", 115s # "keywordLocation": "/additionalItems" 115s # }, 115s # { 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 11 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 12 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 13 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 14 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 15 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not boolean", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/additionalItems/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not boolean", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/additionalItems/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 16 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 17 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/additionalItems/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/additionalItems/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 18 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "additional item not permitted", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/additionalItems" 115s # }, 115s # { 115s # "error": "additional item not permitted", 115s # "instanceLocation": "/2", 115s # "keywordLocation": "/additionalItems" 115s # }, 115s # { 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "additional item not permitted", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/additionalItems" 115s # }, 115s # { 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 19 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 20 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/quux", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/quux", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 25 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 26 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 27 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 28 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/élmény", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/élmény", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 29 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 30 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 31 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not boolean", 115s # "instanceLocation": "/quux", 115s # "keywordLocation": "/additionalProperties/type" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not boolean", 115s # "instanceLocation": "/quux", 115s # "keywordLocation": "/additionalProperties/type" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 32 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 33 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not boolean", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/additionalProperties/type" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not boolean", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/additionalProperties/type" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 34 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 35 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not boolean", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/additionalProperties/type" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not boolean", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/additionalProperties/type" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 36 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 37 - allOf.json: "allOf" - "allOf" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 38 - allOf.json: "allOf" - "mismatch second" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/required" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/required" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 39 - allOf.json: "allOf" - "mismatch first" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/1/required" 115s # }, 115s # { 115s # "error": "subschema 1 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/1/required" 115s # }, 115s # { 115s # "error": "subschema 1 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 40 - allOf.json: "allOf" - "wrong type" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/allOf/0/properties/bar/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/properties" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/allOf/0/properties/bar/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/properties" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 41 - allOf.json: "allOf with base schema" - "valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 42 - allOf.json: "allOf with base schema" - "mismatch base schema" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 43 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/required" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/required" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 44 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: baz", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/1/required" 115s # }, 115s # { 115s # "error": "subschema 1 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: baz", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/1/required" 115s # }, 115s # { 115s # "error": "subschema 1 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 45 - allOf.json: "allOf with base schema" - "mismatch both" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/required" 115s # }, 115s # { 115s # "error": "object is missing property: baz", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/1/required" 115s # }, 115s # { 115s # "error": "subschemas 0, 1 are not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/required" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 46 - allOf.json: "allOf simple types" - "valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 47 - allOf.json: "allOf simple types" - "mismatch one" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is greater than 30", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/maximum" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is greater than 30", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/maximum" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 48 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 49 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/1" 115s # }, 115s # { 115s # "error": "subschema 1 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/1" 115s # }, 115s # { 115s # "error": "subschema 1 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 50 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0" 115s # }, 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/1" 115s # }, 115s # { 115s # "error": "subschemas 0, 1 are not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 51 - allOf.json: "allOf with one empty schema" - "any data is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 52 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 53 - allOf.json: "allOf with the first empty schema" - "number is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 54 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/1/type" 115s # }, 115s # { 115s # "error": "subschema 1 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/1/type" 115s # }, 115s # { 115s # "error": "subschema 1 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 55 - allOf.json: "allOf with the last empty schema" - "number is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 56 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/type" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/type" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 57 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 58 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/allOf/0/type" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/allOf" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/allOf/0/type" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/allOf" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 59 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # }, 115s # { 115s # "error": "value is not a multiple of 3", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # }, 115s # { 115s # "error": "value is not a multiple of 5", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 60 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # }, 115s # { 115s # "error": "value is not a multiple of 3", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 61 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # }, 115s # { 115s # "error": "value is not a multiple of 5", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 62 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 63 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 3", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # }, 115s # { 115s # "error": "value is not a multiple of 5", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 3", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 64 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 3", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 3", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 65 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 5", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 5", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0/multipleOf" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 66 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 67 - anyOf.json: "anyOf" - "first anyOf valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 68 - anyOf.json: "anyOf" - "second anyOf valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 69 - anyOf.json: "anyOf" - "both anyOf valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 70 - anyOf.json: "anyOf" - "neither anyOf valid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/type" 115s # }, 115s # { 115s # "error": "value is less than 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/1/minimum" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/type" 115s # }, 115s # { 115s # "error": "value is less than 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/1/minimum" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 71 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 72 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 73 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "length is greater than 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/maxLength" 115s # }, 115s # { 115s # "error": "length is less than 4", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/1/minLength" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "length is greater than 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/maxLength" 115s # }, 115s # { 115s # "error": "length is less than 4", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/1/minLength" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 74 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 75 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 76 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0" 115s # }, 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/1" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0" 115s # }, 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/1" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 77 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 78 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 79 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 80 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/anyOf/0/properties/bar/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/properties" 115s # }, 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/anyOf/1/properties/foo/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/1/properties" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/anyOf/0/properties/bar/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/properties" 115s # }, 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/anyOf/1/properties/foo/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/1/properties" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 81 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 82 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 83 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 84 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/anyOf/0/type" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/anyOf" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/anyOf/0/type" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/anyOf" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 85 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 86 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 87 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 88 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 89 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 90 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 91 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 92 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 93 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 94 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 95 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 96 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 97 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 98 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 99 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 100 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 101 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 102 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 103 - const.json: "const validation" - "same value is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 104 - const.json: "const validation" - "another value is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 105 - const.json: "const validation" - "another type is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 106 - const.json: "const with object" - "same object is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 107 - const.json: "const with object" - "same object with different property order is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 108 - const.json: "const with object" - "another object is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 109 - const.json: "const with object" - "another type is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 110 - const.json: "const with array" - "same array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 111 - const.json: "const with array" - "another array item is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/0': wrong type: integer vs object)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/0': wrong type: integer vs object)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 112 - const.json: "const with array" - "array with additional items is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 113 - const.json: "const with null" - "null is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 114 - const.json: "const with null" - "not null is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 115 - const.json: "const with false does not match 0" - "false is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 116 - const.json: "const with false does not match 0" - "integer zero is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 117 - const.json: "const with false does not match 0" - "float zero is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 118 - const.json: "const with true does not match 1" - "true is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 119 - const.json: "const with true does not match 1" - "integer one is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 120 - const.json: "const with true does not match 1" - "float one is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 121 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 122 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 123 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 124 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 125 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 126 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 127 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 128 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 129 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 130 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 131 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 132 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 133 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 134 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 135 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 136 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 137 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 138 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 139 - const.json: "const with 1 does not match true" - "true is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 140 - const.json: "const with 1 does not match true" - "integer one is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 141 - const.json: "const with 1 does not match true" - "float one is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 142 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 143 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 144 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 145 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 146 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 147 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 148 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 149 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 150 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 151 - const.json: "nul characters in strings" - "match string with nul" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 152 - const.json: "nul characters in strings" - "do not match string lacking nul" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/const" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 153 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 154 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 155 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 156 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than 5", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/contains/minimum" 115s # }, 115s # { 115s # "error": "value is less than 5", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/contains/minimum" 115s # }, 115s # { 115s # "error": "value is less than 5", 115s # "instanceLocation": "/2", 115s # "keywordLocation": "/contains/minimum" 115s # }, 115s # { 115s # "error": "subschema is not valid against any item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contains" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than 5", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/contains/minimum" 115s # }, 115s # { 115s # "error": "value is less than 5", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/contains/minimum" 115s # }, 115s # { 115s # "error": "value is less than 5", 115s # "instanceLocation": "/2", 115s # "keywordLocation": "/contains/minimum" 115s # }, 115s # { 115s # "error": "subschema is not valid against any item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contains" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 157 - contains.json: "contains keyword validation" - "empty array is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is not valid against any item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contains" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is not valid against any item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contains" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 158 - contains.json: "contains keyword validation" - "not array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 159 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 160 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 161 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/contains/const" 115s # }, 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/contains/const" 115s # }, 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "/2", 115s # "keywordLocation": "/contains/const" 115s # }, 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "/3", 115s # "keywordLocation": "/contains/const" 115s # }, 115s # { 115s # "error": "subschema is not valid against any item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contains" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/contains/const" 115s # }, 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/contains/const" 115s # }, 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "/2", 115s # "keywordLocation": "/contains/const" 115s # }, 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "/3", 115s # "keywordLocation": "/contains/const" 115s # }, 115s # { 115s # "error": "subschema is not valid against any item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contains" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 162 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 163 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is not valid against any item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contains" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is not valid against any item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contains" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 164 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/contains" 115s # }, 115s # { 115s # "error": "subschema is not valid against any item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contains" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/contains" 115s # }, 115s # { 115s # "error": "subschema is not valid against any item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contains" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 165 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is not valid against any item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contains" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is not valid against any item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contains" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 166 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 167 - contains.json: "items + contains" - "matches items, does not match contains" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 3", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/contains/multipleOf" 115s # }, 115s # { 115s # "error": "value is not a multiple of 3", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/contains/multipleOf" 115s # }, 115s # { 115s # "error": "value is not a multiple of 3", 115s # "instanceLocation": "/2", 115s # "keywordLocation": "/contains/multipleOf" 115s # }, 115s # { 115s # "error": "subschema is not valid against any item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contains" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 3", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/contains/multipleOf" 115s # }, 115s # { 115s # "error": "value is not a multiple of 3", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/contains/multipleOf" 115s # }, 115s # { 115s # "error": "value is not a multiple of 3", 115s # "instanceLocation": "/2", 115s # "keywordLocation": "/contains/multipleOf" 115s # }, 115s # { 115s # "error": "subschema is not valid against any item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contains" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 168 - contains.json: "items + contains" - "does not match items, matches contains" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/multipleOf" 115s # }, 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "/2", 115s # "keywordLocation": "/items/multipleOf" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/multipleOf" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 169 - contains.json: "items + contains" - "matches both items and contains" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 170 - contains.json: "items + contains" - "matches neither items nor contains" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/multipleOf" 115s # }, 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/items/multipleOf" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # }, 115s # { 115s # "error": "value is not a multiple of 3", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/contains/multipleOf" 115s # }, 115s # { 115s # "error": "value is not a multiple of 3", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/contains/multipleOf" 115s # }, 115s # { 115s # "error": "subschema is not valid against any item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contains" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/multipleOf" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 171 - contains.json: "contains with false if subschema" - "any non-empty array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 172 - contains.json: "contains with false if subschema" - "empty array is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is not valid against any item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contains" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is not valid against any item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contains" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 173 - contains.json: "contains with null instance elements" - "allows null items" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 174 - default.json: "invalid type for default" - "valid when property is specified" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 175 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 176 - default.json: "invalid string value for default" - "valid when property is specified" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 177 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s 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)" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s 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)" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is greater than 3", 115s # "instanceLocation": "/alpha", 115s # "keywordLocation": "/properties/alpha/maximum" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is greater than 3", 115s # "instanceLocation": "/alpha", 115s # "keywordLocation": "/properties/alpha/maximum" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s 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" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 181 - definitions.json: "validate definition against metaschema" - "valid definition schema" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 182 - definitions.json: "validate definition against metaschema" - "invalid definition schema" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/simpleTypes/enum", 115s # "error": "value does not match", 115s # "instanceLocation": "/definitions/foo/type", 115s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf/1/type", 115s # "error": "got integer, not array", 115s # "instanceLocation": "/definitions/foo/type", 115s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf", 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "/definitions/foo/type", 115s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "/definitions/foo", 115s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/definitions/additionalProperties", 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "/definitions", 115s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/$ref/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/simpleTypes/enum", 115s # "error": "value does not match", 115s # "instanceLocation": "/definitions/foo/type", 115s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf/1/type", 115s # "error": "got integer, not array", 115s # "instanceLocation": "/definitions/foo/type", 115s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf", 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "/definitions/foo/type", 115s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "/definitions/foo", 115s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/definitions/additionalProperties", 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "/definitions", 115s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/$ref/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 183 - dependencies.json: "dependencies" - "neither" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 184 - dependencies.json: "dependencies" - "nondependant" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 185 - dependencies.json: "dependencies" - "with dependency" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 186 - dependencies.json: "dependencies" - "missing dependency" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/bar" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/bar" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 187 - dependencies.json: "dependencies" - "ignores arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 188 - dependencies.json: "dependencies" - "ignores strings" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 189 - dependencies.json: "dependencies" - "ignores other non-objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 190 - dependencies.json: "dependencies with empty array" - "empty object" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 191 - dependencies.json: "dependencies with empty array" - "object with one property" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 192 - dependencies.json: "dependencies with empty array" - "non-object is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 193 - dependencies.json: "multiple dependencies" - "neither" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 194 - dependencies.json: "multiple dependencies" - "nondependants" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 195 - dependencies.json: "multiple dependencies" - "with dependencies" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 196 - dependencies.json: "multiple dependencies" - "missing dependency" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/quux" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/quux" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 197 - dependencies.json: "multiple dependencies" - "missing other dependency" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/quux" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/quux" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 198 - dependencies.json: "multiple dependencies" - "missing both dependencies" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing properties: foo, bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/quux" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing properties: foo, bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/quux" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 199 - dependencies.json: "multiple dependencies subschema" - "valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 200 - dependencies.json: "multiple dependencies subschema" - "no dependency" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 201 - dependencies.json: "multiple dependencies subschema" - "wrong type" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/dependencies/bar/properties/foo/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/bar/properties" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/dependencies/bar/properties/foo/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/bar/properties" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 202 - dependencies.json: "multiple dependencies subschema" - "wrong type other" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/dependencies/bar/properties/bar/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/bar/properties" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/dependencies/bar/properties/bar/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/bar/properties" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 203 - dependencies.json: "multiple dependencies subschema" - "wrong type both" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/dependencies/bar/properties/bar/type" 115s # }, 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/dependencies/bar/properties/foo/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/bar/properties" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/dependencies/bar/properties/bar/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/bar/properties" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 204 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema true is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 205 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema false is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/bar" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/bar" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 206 - dependencies.json: "dependencies with boolean subschemas" - "object with both properties is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/bar" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/bar" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 207 - dependencies.json: "dependencies with boolean subschemas" - "empty object is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 208 - dependencies.json: "dependencies with escaped characters" - "valid object 1" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 209 - dependencies.json: "dependencies with escaped characters" - "valid object 2" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 210 - dependencies.json: "dependencies with escaped characters" - "valid object 3" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 211 - dependencies.json: "dependencies with escaped characters" - "invalid object 1" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo\rbar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/foo\nbar" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo\rbar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/foo\nbar" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 212 - dependencies.json: "dependencies with escaped characters" - "invalid object 2" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object has fewer than 4 properties", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object has fewer than 4 properties", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 213 - dependencies.json: "dependencies with escaped characters" - "invalid object 3" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo\"bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/foo'bar/required" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo\"bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/foo'bar/required" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 214 - dependencies.json: "dependencies with escaped characters" - "invalid object 4" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo'bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/foo\"bar" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo'bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/foo\"bar" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 215 - dependencies.json: "dependent subschema incompatible with root" - "matches root" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/dependencies/foo/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/foo/additionalProperties" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/dependencies/foo/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/foo/additionalProperties" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 216 - dependencies.json: "dependent subschema incompatible with root" - "matches dependency" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 217 - dependencies.json: "dependent subschema incompatible with root" - "matches both" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/dependencies/foo/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/foo/additionalProperties" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/dependencies/foo/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies/foo/additionalProperties" 115s # }, 115s # { 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/dependencies" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 218 - dependencies.json: "dependent subschema incompatible with root" - "no dependency" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 219 - enum.json: "simple enum validation" - "one of the enum is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 220 - enum.json: "simple enum validation" - "something else is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 221 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 222 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 223 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 115s # result: { 115s # "errors": [ 115s # { 115s # "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)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "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)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 224 - enum.json: "heterogeneous enum validation" - "valid object matches" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 225 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 226 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 227 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 228 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 229 - enum.json: "enums in properties" - "both properties are valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 230 - enum.json: "enums in properties" - "wrong foo value" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/enum" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/enum" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 231 - enum.json: "enums in properties" - "wrong bar value" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/properties/bar/enum" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/properties/bar/enum" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 232 - enum.json: "enums in properties" - "missing optional property is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 233 - enum.json: "enums in properties" - "missing required property is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 234 - enum.json: "enums in properties" - "missing all properties is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 235 - enum.json: "enum with escaped characters" - "member 1 is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 236 - enum.json: "enum with escaped characters" - "member 2 is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 237 - enum.json: "enum with escaped characters" - "another string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 238 - enum.json: "enum with false does not match 0" - "false is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 239 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 240 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 241 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 242 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 243 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 244 - enum.json: "enum with true does not match 1" - "true is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 245 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 246 - enum.json: "enum with true does not match 1" - "float one is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 247 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 248 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 249 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 250 - enum.json: "enum with 0 does not match false" - "false is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 251 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 252 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 253 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 254 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 255 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 256 - enum.json: "enum with 1 does not match true" - "true is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 257 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 258 - enum.json: "enum with 1 does not match true" - "float one is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 259 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 260 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 261 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 262 - enum.json: "nul characters in strings" - "match string with nul" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 263 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 264 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 265 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is greater than or equal to 3", 115s # "instanceLocation": "", 115s # "keywordLocation": "/exclusiveMaximum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is greater than or equal to 3", 115s # "instanceLocation": "", 115s # "keywordLocation": "/exclusiveMaximum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 266 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is greater than or equal to 3", 115s # "instanceLocation": "", 115s # "keywordLocation": "/exclusiveMaximum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is greater than or equal to 3", 115s # "instanceLocation": "", 115s # "keywordLocation": "/exclusiveMaximum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 267 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 268 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 269 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than or equal to 1.1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/exclusiveMinimum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than or equal to 1.1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/exclusiveMinimum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 270 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than or equal to 1.1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/exclusiveMinimum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than or equal to 1.1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/exclusiveMinimum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 271 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 272 - format.json: "email format" - "all string formats ignore integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 273 - format.json: "email format" - "all string formats ignore floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 274 - format.json: "email format" - "all string formats ignore objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 275 - format.json: "email format" - "all string formats ignore arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 276 - format.json: "email format" - "all string formats ignore booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 277 - format.json: "email format" - "all string formats ignore nulls" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 278 - format.json: "idn-email format" - "all string formats ignore integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 279 - format.json: "idn-email format" - "all string formats ignore floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 280 - format.json: "idn-email format" - "all string formats ignore objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 281 - format.json: "idn-email format" - "all string formats ignore arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 282 - format.json: "idn-email format" - "all string formats ignore booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 283 - format.json: "idn-email format" - "all string formats ignore nulls" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 284 - format.json: "regex format" - "all string formats ignore integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 285 - format.json: "regex format" - "all string formats ignore floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 286 - format.json: "regex format" - "all string formats ignore objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 287 - format.json: "regex format" - "all string formats ignore arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 288 - format.json: "regex format" - "all string formats ignore booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 289 - format.json: "regex format" - "all string formats ignore nulls" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 290 - format.json: "ipv4 format" - "all string formats ignore integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 291 - format.json: "ipv4 format" - "all string formats ignore floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 292 - format.json: "ipv4 format" - "all string formats ignore objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 293 - format.json: "ipv4 format" - "all string formats ignore arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 294 - format.json: "ipv4 format" - "all string formats ignore booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 295 - format.json: "ipv4 format" - "all string formats ignore nulls" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 296 - format.json: "ipv6 format" - "all string formats ignore integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 297 - format.json: "ipv6 format" - "all string formats ignore floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 298 - format.json: "ipv6 format" - "all string formats ignore objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 299 - format.json: "ipv6 format" - "all string formats ignore arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 300 - format.json: "ipv6 format" - "all string formats ignore booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 301 - format.json: "ipv6 format" - "all string formats ignore nulls" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 302 - format.json: "idn-hostname format" - "all string formats ignore integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 303 - format.json: "idn-hostname format" - "all string formats ignore floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 304 - format.json: "idn-hostname format" - "all string formats ignore objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 305 - format.json: "idn-hostname format" - "all string formats ignore arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 306 - format.json: "idn-hostname format" - "all string formats ignore booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 307 - format.json: "idn-hostname format" - "all string formats ignore nulls" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 308 - format.json: "hostname format" - "all string formats ignore integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 309 - format.json: "hostname format" - "all string formats ignore floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 310 - format.json: "hostname format" - "all string formats ignore objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 311 - format.json: "hostname format" - "all string formats ignore arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 312 - format.json: "hostname format" - "all string formats ignore booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 313 - format.json: "hostname format" - "all string formats ignore nulls" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 314 - format.json: "date format" - "all string formats ignore integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 315 - format.json: "date format" - "all string formats ignore floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 316 - format.json: "date format" - "all string formats ignore objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 317 - format.json: "date format" - "all string formats ignore arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 318 - format.json: "date format" - "all string formats ignore booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 319 - format.json: "date format" - "all string formats ignore nulls" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 320 - format.json: "date-time format" - "all string formats ignore integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 321 - format.json: "date-time format" - "all string formats ignore floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 322 - format.json: "date-time format" - "all string formats ignore objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 323 - format.json: "date-time format" - "all string formats ignore arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 324 - format.json: "date-time format" - "all string formats ignore booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 325 - format.json: "date-time format" - "all string formats ignore nulls" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 326 - format.json: "time format" - "all string formats ignore integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 327 - format.json: "time format" - "all string formats ignore floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 328 - format.json: "time format" - "all string formats ignore objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 329 - format.json: "time format" - "all string formats ignore arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 330 - format.json: "time format" - "all string formats ignore booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 331 - format.json: "time format" - "all string formats ignore nulls" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 332 - format.json: "json-pointer format" - "all string formats ignore integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 333 - format.json: "json-pointer format" - "all string formats ignore floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 334 - format.json: "json-pointer format" - "all string formats ignore objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 335 - format.json: "json-pointer format" - "all string formats ignore arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 336 - format.json: "json-pointer format" - "all string formats ignore booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 337 - format.json: "json-pointer format" - "all string formats ignore nulls" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 338 - format.json: "relative-json-pointer format" - "all string formats ignore integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 339 - format.json: "relative-json-pointer format" - "all string formats ignore floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 340 - format.json: "relative-json-pointer format" - "all string formats ignore objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 341 - format.json: "relative-json-pointer format" - "all string formats ignore arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 342 - format.json: "relative-json-pointer format" - "all string formats ignore booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 343 - format.json: "relative-json-pointer format" - "all string formats ignore nulls" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 344 - format.json: "iri format" - "all string formats ignore integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 345 - format.json: "iri format" - "all string formats ignore floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 346 - format.json: "iri format" - "all string formats ignore objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 347 - format.json: "iri format" - "all string formats ignore arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 348 - format.json: "iri format" - "all string formats ignore booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 349 - format.json: "iri format" - "all string formats ignore nulls" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 350 - format.json: "iri-reference format" - "all string formats ignore integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 351 - format.json: "iri-reference format" - "all string formats ignore floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 352 - format.json: "iri-reference format" - "all string formats ignore objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 353 - format.json: "iri-reference format" - "all string formats ignore arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 354 - format.json: "iri-reference format" - "all string formats ignore booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 355 - format.json: "iri-reference format" - "all string formats ignore nulls" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 356 - format.json: "uri format" - "all string formats ignore integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 357 - format.json: "uri format" - "all string formats ignore floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 358 - format.json: "uri format" - "all string formats ignore objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 359 - format.json: "uri format" - "all string formats ignore arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 360 - format.json: "uri format" - "all string formats ignore booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 361 - format.json: "uri format" - "all string formats ignore nulls" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 362 - format.json: "uri-reference format" - "all string formats ignore integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 363 - format.json: "uri-reference format" - "all string formats ignore floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 364 - format.json: "uri-reference format" - "all string formats ignore objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 365 - format.json: "uri-reference format" - "all string formats ignore arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 366 - format.json: "uri-reference format" - "all string formats ignore booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 367 - format.json: "uri-reference format" - "all string formats ignore nulls" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 368 - format.json: "uri-template format" - "all string formats ignore integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 369 - format.json: "uri-template format" - "all string formats ignore floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 370 - format.json: "uri-template format" - "all string formats ignore objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 371 - format.json: "uri-template format" - "all string formats ignore arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 372 - format.json: "uri-template format" - "all string formats ignore booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 373 - format.json: "uri-template format" - "all string formats ignore nulls" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 374 - if-then-else.json: "ignore if without then or else" - "valid when valid against lone if" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 375 - if-then-else.json: "ignore if without then or else" - "valid when invalid against lone if" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 376 - if-then-else.json: "ignore then without if" - "valid when valid against lone then" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 377 - if-then-else.json: "ignore then without if" - "valid when invalid against lone then" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 378 - if-then-else.json: "ignore else without if" - "valid when valid against lone else" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 379 - if-then-else.json: "ignore else without if" - "valid when invalid against lone else" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 380 - if-then-else.json: "if and then without else" - "valid through then" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 381 - if-then-else.json: "if and then without else" - "invalid through then" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than -10", 115s # "instanceLocation": "", 115s # "keywordLocation": "/then/minimum" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/then" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than -10", 115s # "instanceLocation": "", 115s # "keywordLocation": "/then/minimum" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/then" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 382 - if-then-else.json: "if and then without else" - "valid when if test fails" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 383 - if-then-else.json: "if and else without then" - "valid when if test passes" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 384 - if-then-else.json: "if and else without then" - "valid through else" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 385 - if-then-else.json: "if and else without then" - "invalid through else" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else/multipleOf" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else/multipleOf" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 386 - if-then-else.json: "validate against correct branch, then vs else" - "valid through then" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 387 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through then" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than -10", 115s # "instanceLocation": "", 115s # "keywordLocation": "/then/minimum" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/then" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than -10", 115s # "instanceLocation": "", 115s # "keywordLocation": "/then/minimum" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/then" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 388 - if-then-else.json: "validate against correct branch, then vs else" - "valid through else" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 389 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through else" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else/multipleOf" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else/multipleOf" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 390 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through then" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 391 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through else" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 392 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (valid)" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 393 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (invalid)" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/then/const" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/then" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/then/const" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/then" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 394 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (invalid)" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else/const" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else/const" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 395 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (valid)" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 396 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "yes redirects to then and passes" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 397 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "other redirects to else and passes" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 398 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "no redirects to then and fails" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/then/const" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/then" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/then/const" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/then" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 399 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "invalid redirects to else and fails" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else/const" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else/const" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s 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" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s 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" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/int/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "#/definitions/int/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/1/additionalProperties" 115s # }, 115s # { 115s # "error": "subschemas 0, 1 are not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/int/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/properties" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 402 - items.json: "a schema given for items" - "valid items" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 403 - items.json: "a schema given for items" - "wrong type of items" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/items/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/items/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 404 - items.json: "a schema given for items" - "ignores non-arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 405 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 406 - items.json: "an array of schemas for items" - "correct types" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 407 - items.json: "an array of schemas for items" - "wrong types" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/0/type" 115s # }, 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/items/1/type" 115s # }, 115s # { 115s # "error": "not all items are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/0/type" 115s # }, 115s # { 115s # "error": "not all items are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 408 - items.json: "an array of schemas for items" - "incomplete array of items" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 409 - items.json: "an array of schemas for items" - "array with additional items" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 410 - items.json: "an array of schemas for items" - "empty array" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 411 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 412 - items.json: "items with boolean schema (true)" - "any array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 413 - items.json: "items with boolean schema (true)" - "empty array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 414 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "item not permitted", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items" 115s # }, 115s # { 115s # "error": "item not permitted", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/items" 115s # }, 115s # { 115s # "error": "item not permitted", 115s # "instanceLocation": "/2", 115s # "keywordLocation": "/items" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "item not permitted", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 415 - items.json: "items with boolean schema (false)" - "empty array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 416 - items.json: "items with boolean schemas" - "array with one item is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 417 - items.json: "items with boolean schemas" - "array with two items is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "item not permitted", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/items/1" 115s # }, 115s # { 115s # "error": "not all items are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "item not permitted", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/items/1" 115s # }, 115s # { 115s # "error": "not all items are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 418 - items.json: "items with boolean schemas" - "empty array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 419 - items.json: "items and subitems" - "valid items" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 420 - items.json: "items and subitems" - "too many items" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "additional item not permitted", 115s # "instanceLocation": "/3", 115s # "keywordLocation": "/additionalItems" 115s # }, 115s # { 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "additional item not permitted", 115s # "instanceLocation": "/3", 115s # "keywordLocation": "/additionalItems" 115s # }, 115s # { 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 421 - items.json: "items and subitems" - "too many sub-items" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 115s # "error": "additional item not permitted", 115s # "instanceLocation": "/0/2", 115s # "keywordLocation": "/items/0/$ref/additionalItems" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/0/$ref/additionalItems" 115s # }, 115s # { 115s # "error": "not all items are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 115s # "error": "additional item not permitted", 115s # "instanceLocation": "/0/2", 115s # "keywordLocation": "/items/0/$ref/additionalItems" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/0/$ref/additionalItems" 115s # }, 115s # { 115s # "error": "not all items are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 422 - items.json: "items and subitems" - "wrong item" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/item/type", 115s # "error": "got object, not array", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/0/$ref/type" 115s # }, 115s # { 115s # "error": "not all items are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/item/type", 115s # "error": "got object, not array", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/0/$ref/type" 115s # }, 115s # { 115s # "error": "not all items are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 423 - items.json: "items and subitems" - "wrong sub-item" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "/0/0", 115s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "#/definitions/item/items", 115s # "error": "not all items are valid", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/0/$ref/items" 115s # }, 115s # { 115s # "error": "not all items are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "/0/0", 115s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "#/definitions/item/items", 115s # "error": "not all items are valid", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/0/$ref/items" 115s # }, 115s # { 115s # "error": "not all items are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 424 - items.json: "items and subitems" - "fewer items is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 425 - items.json: "nested items" - "valid nested array" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 426 - items.json: "nested items" - "nested array with invalid type" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "/0/0/0/0", 115s # "keywordLocation": "/items/items/items/items/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/0/0/0", 115s # "keywordLocation": "/items/items/items/items" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/0/0", 115s # "keywordLocation": "/items/items/items" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/items" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "/0/0/0/0", 115s # "keywordLocation": "/items/items/items/items/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/0/0/0", 115s # "keywordLocation": "/items/items/items/items" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/0/0", 115s # "keywordLocation": "/items/items/items" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/items" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 427 - items.json: "nested items" - "not deep enough" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not array", 115s # "instanceLocation": "/0/0/0", 115s # "keywordLocation": "/items/items/items/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/0/0", 115s # "keywordLocation": "/items/items/items" 115s # }, 115s # { 115s # "error": "got integer, not array", 115s # "instanceLocation": "/0/1/0", 115s # "keywordLocation": "/items/items/items/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/0/1", 115s # "keywordLocation": "/items/items/items" 115s # }, 115s # { 115s # "error": "got integer, not array", 115s # "instanceLocation": "/0/2/0", 115s # "keywordLocation": "/items/items/items/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/0/2", 115s # "keywordLocation": "/items/items/items" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/items" 115s # }, 115s # { 115s # "error": "got integer, not array", 115s # "instanceLocation": "/1/0/0", 115s # "keywordLocation": "/items/items/items/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/1/0", 115s # "keywordLocation": "/items/items/items" 115s # }, 115s # { 115s # "error": "got integer, not array", 115s # "instanceLocation": "/1/1/0", 115s # "keywordLocation": "/items/items/items/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/1/1", 115s # "keywordLocation": "/items/items/items" 115s # }, 115s # { 115s # "error": "got integer, not array", 115s # "instanceLocation": "/1/2/0", 115s # "keywordLocation": "/items/items/items/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/1/2", 115s # "keywordLocation": "/items/items/items" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/items/items" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not array", 115s # "instanceLocation": "/0/0/0", 115s # "keywordLocation": "/items/items/items/type" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/0/0", 115s # "keywordLocation": "/items/items/items" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/items" 115s # }, 115s # { 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 428 - items.json: "single-form items with null instance elements" - "allows null elements" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 429 - items.json: "array-form items with null instance elements" - "allows null elements" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 430 - maxItems.json: "maxItems validation" - "shorter is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 431 - maxItems.json: "maxItems validation" - "exact length is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 432 - maxItems.json: "maxItems validation" - "too long is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "array has more than 2 items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maxItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "array has more than 2 items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maxItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 433 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 434 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 435 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "array has more than 2 items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maxItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "array has more than 2 items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maxItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 436 - maxLength.json: "maxLength validation" - "shorter is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 437 - maxLength.json: "maxLength validation" - "exact length is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 438 - maxLength.json: "maxLength validation" - "too long is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "length is greater than 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maxLength" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "length is greater than 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maxLength" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 439 - maxLength.json: "maxLength validation" - "ignores non-strings" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 440 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 441 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 442 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "length is greater than 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maxLength" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "length is greater than 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maxLength" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 443 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 444 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 445 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object has more than 2 properties", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maxProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object has more than 2 properties", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maxProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 446 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 447 - maxProperties.json: "maxProperties validation" - "ignores strings" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 448 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 449 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 450 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object has more than 2 properties", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maxProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object has more than 2 properties", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maxProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 451 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 452 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object has more than 0 property", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maxProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object has more than 0 property", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maxProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 453 - maximum.json: "maximum validation" - "below the maximum is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 454 - maximum.json: "maximum validation" - "boundary point is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 455 - maximum.json: "maximum validation" - "above the maximum is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is greater than 3", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maximum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is greater than 3", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maximum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 456 - maximum.json: "maximum validation" - "ignores non-numbers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 457 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 458 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 459 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 460 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is greater than 300", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maximum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is greater than 300", 115s # "instanceLocation": "", 115s # "keywordLocation": "/maximum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 461 - minItems.json: "minItems validation" - "longer is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 462 - minItems.json: "minItems validation" - "exact length is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 463 - minItems.json: "minItems validation" - "too short is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "array has fewer than 1 item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "array has fewer than 1 item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 464 - minItems.json: "minItems validation" - "ignores non-arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 465 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 466 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "array has fewer than 1 item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "array has fewer than 1 item", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 467 - minLength.json: "minLength validation" - "longer is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 468 - minLength.json: "minLength validation" - "exact length is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 469 - minLength.json: "minLength validation" - "too short is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "length is less than 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minLength" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "length is less than 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minLength" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 470 - minLength.json: "minLength validation" - "ignores non-strings" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 471 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "length is less than 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minLength" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "length is less than 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minLength" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 472 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 473 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "length is less than 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minLength" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "length is less than 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minLength" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 474 - minProperties.json: "minProperties validation" - "longer is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 475 - minProperties.json: "minProperties validation" - "exact length is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 476 - minProperties.json: "minProperties validation" - "too short is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object has fewer than 1 property", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object has fewer than 1 property", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 477 - minProperties.json: "minProperties validation" - "ignores arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 478 - minProperties.json: "minProperties validation" - "ignores strings" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 479 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 480 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 481 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object has fewer than 1 property", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object has fewer than 1 property", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 482 - minimum.json: "minimum validation" - "above the minimum is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 483 - minimum.json: "minimum validation" - "boundary point is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 484 - minimum.json: "minimum validation" - "below the minimum is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than 1.1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minimum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than 1.1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minimum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 485 - minimum.json: "minimum validation" - "ignores non-numbers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 486 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 487 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 488 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 489 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 490 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than -2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minimum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than -2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minimum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 491 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than -2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minimum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than -2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/minimum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 492 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 493 - multipleOf.json: "by int" - "int by int" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 494 - multipleOf.json: "by int" - "int by int fail" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/multipleOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/multipleOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 495 - multipleOf.json: "by int" - "ignores non-numbers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 496 - multipleOf.json: "by number" - "zero is multiple of anything" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 497 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 498 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 1.5", 115s # "instanceLocation": "", 115s # "keywordLocation": "/multipleOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 1.5", 115s # "instanceLocation": "", 115s # "keywordLocation": "/multipleOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 499 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 500 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 0.0001", 115s # "instanceLocation": "", 115s # "keywordLocation": "/multipleOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 0.0001", 115s # "instanceLocation": "", 115s # "keywordLocation": "/multipleOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 501 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 0.123456789", 115s # "instanceLocation": "", 115s # "keywordLocation": "/multipleOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is not a multiple of 0.123456789", 115s # "instanceLocation": "", 115s # "keywordLocation": "/multipleOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 502 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 503 - not.json: "not" - "allowed" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 504 - not.json: "not" - "disallowed" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 505 - not.json: "not multiple types" - "valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 506 - not.json: "not multiple types" - "mismatch" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 507 - not.json: "not multiple types" - "other mismatch" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 508 - not.json: "not more complex schema" - "match" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 509 - not.json: "not more complex schema" - "other match" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 510 - not.json: "not more complex schema" - "mismatch" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 511 - not.json: "forbidden property" - "property present" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/not" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/not" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 512 - not.json: "forbidden property" - "property absent" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 513 - not.json: "forbid everything with empty schema" - "number is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 514 - not.json: "forbid everything with empty schema" - "string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 515 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 516 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 517 - not.json: "forbid everything with empty schema" - "null is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 518 - not.json: "forbid everything with empty schema" - "object is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 519 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 520 - not.json: "forbid everything with empty schema" - "array is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 521 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 522 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 523 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 524 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 525 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 526 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 527 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 528 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 529 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 530 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is true", 115s # "instanceLocation": "", 115s # "keywordLocation": "/not" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 531 - not.json: "allow everything with boolean schema false" - "number is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 532 - not.json: "allow everything with boolean schema false" - "string is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 533 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 534 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 535 - not.json: "allow everything with boolean schema false" - "null is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 536 - not.json: "allow everything with boolean schema false" - "object is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 537 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 538 - not.json: "allow everything with boolean schema false" - "array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 539 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 540 - not.json: "double negation" - "any value is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 541 - oneOf.json: "oneOf" - "first oneOf valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 542 - oneOf.json: "oneOf" - "second oneOf valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 543 - oneOf.json: "oneOf" - "both oneOf valid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "multiple subschemas are valid: 0, 1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "multiple subschemas are valid: 0, 1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 544 - oneOf.json: "oneOf" - "neither oneOf valid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0/type" 115s # }, 115s # { 115s # "error": "value is less than 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/1/minimum" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0/type" 115s # }, 115s # { 115s # "error": "value is less than 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/1/minimum" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 545 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # }, 115s # { 115s # "error": "multiple subschemas are valid: 0, 1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 546 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 547 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "multiple subschemas are valid: 0, 1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "multiple subschemas are valid: 0, 1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 548 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "multiple subschemas are valid: 0, 1, 2", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "multiple subschemas are valid: 0, 1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 549 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 550 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "multiple subschemas are valid: 0, 1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "multiple subschemas are valid: 0, 1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 551 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0" 115s # }, 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/1" 115s # }, 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/2" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0" 115s # }, 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/1" 115s # }, 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/2" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 552 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 553 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 554 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "multiple subschemas are valid: 0, 1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "multiple subschemas are valid: 0, 1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 555 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/oneOf/0/properties/bar/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0/properties" 115s # }, 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/oneOf/1/properties/foo/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/1/properties" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/oneOf/0/properties/bar/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0/properties" 115s # }, 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/oneOf/1/properties/foo/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/1/properties" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 556 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 557 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "multiple subschemas are valid: 0, 1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "multiple subschemas are valid: 0, 1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 558 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0/required" 115s # }, 115s # { 115s # "error": "object is missing properties: foo, baz", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/1/required" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0/required" 115s # }, 115s # { 115s # "error": "object is missing properties: foo, baz", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/1/required" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 559 - oneOf.json: "oneOf with required" - "first valid - valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 560 - oneOf.json: "oneOf with required" - "second valid - valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 561 - oneOf.json: "oneOf with required" - "both valid - invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "multiple subschemas are valid: 0, 1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "multiple subschemas are valid: 0, 1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 562 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 563 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 564 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "multiple subschemas are valid: 0, 1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "multiple subschemas are valid: 0, 1", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 565 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0/required" 115s # }, 115s # { 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/1/required" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0/required" 115s # }, 115s # { 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/1/required" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 566 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 567 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0/oneOf/0/type" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0/oneOf" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0/oneOf/0/type" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf/0/oneOf" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/oneOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 568 - pattern.json: "pattern validation" - "a matching pattern is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 569 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 570 - pattern.json: "pattern validation" - "ignores booleans" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 571 - pattern.json: "pattern validation" - "ignores integers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 572 - pattern.json: "pattern validation" - "ignores floats" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 573 - pattern.json: "pattern validation" - "ignores objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 574 - pattern.json: "pattern validation" - "ignores arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 575 - pattern.json: "pattern validation" - "ignores null" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 576 - pattern.json: "pattern is not anchored" - "matches a substring" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 577 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 578 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 579 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/patternProperties/f.*o/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/patternProperties/f.*o/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 580 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/patternProperties/f.*o/type" 115s # }, 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/foooooo", 115s # "keywordLocation": "/patternProperties/f.*o/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/patternProperties/f.*o/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 581 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 582 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 583 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 584 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 585 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 586 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 587 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/a", 115s # "keywordLocation": "/patternProperties/a*/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/a", 115s # "keywordLocation": "/patternProperties/a*/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 588 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is greater than 20", 115s # "instanceLocation": "/aaaa", 115s # "keywordLocation": "/patternProperties/aaa*/maximum" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is greater than 20", 115s # "instanceLocation": "/aaaa", 115s # "keywordLocation": "/patternProperties/aaa*/maximum" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 589 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/aaa", 115s # "keywordLocation": "/patternProperties/a*/type" 115s # }, 115s # { 115s # "error": "value is greater than 20", 115s # "instanceLocation": "/aaaa", 115s # "keywordLocation": "/patternProperties/aaa*/maximum" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/aaa", 115s # "keywordLocation": "/patternProperties/a*/type" 115s # }, 115s # { 115s # "error": "value is greater than 20", 115s # "instanceLocation": "/aaaa", 115s # "keywordLocation": "/patternProperties/aaa*/maximum" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 590 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 591 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not boolean", 115s # "instanceLocation": "/a31b", 115s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not boolean", 115s # "instanceLocation": "/a31b", 115s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 592 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 593 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "/a_X_3", 115s # "keywordLocation": "/patternProperties/X_/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "/a_X_3", 115s # "keywordLocation": "/patternProperties/X_/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 594 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 595 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "property not permitted", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/patternProperties/b.*" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "property not permitted", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/patternProperties/b.*" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 596 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "property not permitted", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/patternProperties/b.*" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "property not permitted", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/patternProperties/b.*" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 597 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "property not permitted", 115s # "instanceLocation": "/foobar", 115s # "keywordLocation": "/patternProperties/b.*" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "property not permitted", 115s # "instanceLocation": "/foobar", 115s # "keywordLocation": "/patternProperties/b.*" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 598 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 599 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 600 - properties.json: "object properties validation" - "both properties present and valid is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 601 - properties.json: "object properties validation" - "one property invalid is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not string", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/properties/bar/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not string", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/properties/bar/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 602 - properties.json: "object properties validation" - "both properties invalid is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not string", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/properties/bar/type" 115s # }, 115s # { 115s # "error": "got array, not integer", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not string", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/properties/bar/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 603 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 604 - properties.json: "object properties validation" - "ignores arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 605 - properties.json: "object properties validation" - "ignores other non-objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 606 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 607 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "array has more than 3 items", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/maxItems" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "array has more than 3 items", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/maxItems" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 608 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "array has fewer than 2 items", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/patternProperties/f.o/minItems" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "array has fewer than 2 items", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/patternProperties/f.o/minItems" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 609 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 610 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "array has fewer than 2 items", 115s # "instanceLocation": "/fxo", 115s # "keywordLocation": "/patternProperties/f.o/minItems" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "array has fewer than 2 items", 115s # "instanceLocation": "/fxo", 115s # "keywordLocation": "/patternProperties/f.o/minItems" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/patternProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 611 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 612 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 613 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/quux", 115s # "keywordLocation": "/additionalProperties/type" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "/quux", 115s # "keywordLocation": "/additionalProperties/type" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 614 - properties.json: "properties with boolean schema" - "no property present is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 615 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 616 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "property not permitted", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/properties/bar" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "property not permitted", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/properties/bar" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 617 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "property not permitted", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/properties/bar" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "property not permitted", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/properties/bar" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 618 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 619 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "/foo\tbar", 115s # "keywordLocation": "/properties/foo\tbar/type" 115s # }, 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "/foo\nbar", 115s # "keywordLocation": "/properties/foo\nbar/type" 115s # }, 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "/foo\fbar", 115s # "keywordLocation": "/properties/foo\fbar/type" 115s # }, 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "/foo\rbar", 115s # "keywordLocation": "/properties/foo\rbar/type" 115s # }, 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "/foo\"bar", 115s # "keywordLocation": "/properties/foo\"bar/type" 115s # }, 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "/foo\\bar", 115s # "keywordLocation": "/properties/foo\\bar/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "/foo\tbar", 115s # "keywordLocation": "/properties/foo\tbar/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 620 - properties.json: "properties with null valued instance properties" - "allows null values" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 621 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 622 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 623 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 624 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "/__proto__", 115s # "keywordLocation": "/properties/__proto__/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "/__proto__", 115s # "keywordLocation": "/properties/__proto__/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 625 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "/toString/length", 115s # "keywordLocation": "/properties/toString/properties/length/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "/toString", 115s # "keywordLocation": "/properties/toString/properties" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "/toString/length", 115s # "keywordLocation": "/properties/toString/properties/length/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "/toString", 115s # "keywordLocation": "/properties/toString/properties" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 626 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not number", 115s # "instanceLocation": "/constructor", 115s # "keywordLocation": "/properties/constructor/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not number", 115s # "instanceLocation": "/constructor", 115s # "keywordLocation": "/properties/constructor/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 627 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 628 - propertyNames.json: "propertyNames validation" - "all property names valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 629 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "length is greater than 3", 115s # "instanceLocation": "/foobar", 115s # "keywordLocation": "/propertyNames/maxLength" 115s # }, 115s # { 115s # "error": "not all property names are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/propertyNames" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "length is greater than 3", 115s # "instanceLocation": "/foobar", 115s # "keywordLocation": "/propertyNames/maxLength" 115s # }, 115s # { 115s # "error": "not all property names are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/propertyNames" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 630 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 631 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 632 - propertyNames.json: "propertyNames validation" - "ignores strings" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 633 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 634 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 635 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "/aaA", 115s # "keywordLocation": "/propertyNames/pattern" 115s # }, 115s # { 115s # "error": "not all property names are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/propertyNames" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "/aaA", 115s # "keywordLocation": "/propertyNames/pattern" 115s # }, 115s # { 115s # "error": "not all property names are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/propertyNames" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 636 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 637 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 638 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 639 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/propertyNames" 115s # }, 115s # { 115s # "error": "not all property names are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/propertyNames" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "subschema is false", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/propertyNames" 115s # }, 115s # { 115s # "error": "not all property names are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/propertyNames" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 640 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 641 - propertyNames.json: "propertyNames with const" - "object with property foo is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 642 - propertyNames.json: "propertyNames with const" - "object with any other property is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/propertyNames/const" 115s # }, 115s # { 115s # "error": "not all property names are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/propertyNames" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/propertyNames/const" 115s # }, 115s # { 115s # "error": "not all property names are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/propertyNames" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 643 - propertyNames.json: "propertyNames with const" - "empty object is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 644 - propertyNames.json: "propertyNames with enum" - "object with property foo is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 645 - propertyNames.json: "propertyNames with enum" - "object with property foo and bar is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 646 - propertyNames.json: "propertyNames with enum" - "object with any other property is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "/baz", 115s # "keywordLocation": "/propertyNames/enum" 115s # }, 115s # { 115s # "error": "not all property names are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/propertyNames" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "/baz", 115s # "keywordLocation": "/propertyNames/enum" 115s # }, 115s # { 115s # "error": "not all property names are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/propertyNames" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 647 - propertyNames.json: "propertyNames with enum" - "empty object is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 648 - ref.json: "root pointer ref" - "match" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 649 - ref.json: "root pointer ref" - "recursive match" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 650 - ref.json: "root pointer ref" - "mismatch" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 651 - ref.json: "root pointer ref" - "recursive mismatch" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/additionalProperties", 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/foo/bar", 115s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "#/additionalProperties", 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/additionalProperties", 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/foo/bar", 115s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "#/additionalProperties", 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 652 - ref.json: "relative pointer ref to object" - "match" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 653 - ref.json: "relative pointer ref to object" - "mismatch" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/properties/foo/type", 115s # "error": "got boolean, not integer", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/properties/bar/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/properties/foo/type", 115s # "error": "got boolean, not integer", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/properties/bar/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 654 - ref.json: "relative pointer ref to array" - "match array" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 655 - ref.json: "relative pointer ref to array" - "mismatch array" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/items/0/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/items/1/$ref/type" 115s # }, 115s # { 115s # "error": "not all items are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/items/0/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "/1", 115s # "keywordLocation": "/items/1/$ref/type" 115s # }, 115s # { 115s # "error": "not all items are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 656 - ref.json: "escaped pointer ref" - "slash invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "/slash", 115s # "keywordLocation": "/properties/slash/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "/slash", 115s # "keywordLocation": "/properties/slash/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 657 - ref.json: "escaped pointer ref" - "tilde invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "/tilde", 115s # "keywordLocation": "/properties/tilde/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "/tilde", 115s # "keywordLocation": "/properties/tilde/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 658 - ref.json: "escaped pointer ref" - "percent invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "/percent", 115s # "keywordLocation": "/properties/percent/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "/percent", 115s # "keywordLocation": "/properties/percent/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 659 - ref.json: "escaped pointer ref" - "slash valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 660 - ref.json: "escaped pointer ref" - "tilde valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 661 - ref.json: "escaped pointer ref" - "percent valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 662 - ref.json: "nested refs" - "nested ref valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 663 - ref.json: "nested refs" - "nested ref invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/a/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/a/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 664 - ref.json: "ref overrides any sibling keywords" - "ref valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 665 - ref.json: "ref overrides any sibling keywords" - "ref valid, maxItems ignored" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 666 - ref.json: "ref overrides any sibling keywords" - "ref invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/reffed/type", 115s # "error": "got string, not array", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/reffed/type", 115s # "error": "got string, not array", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 667 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data does not validate" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 668 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data validates" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 669 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 670 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeInteger/minimum", 115s # "error": "value is less than 0", 115s # "instanceLocation": "/minLength", 115s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeIntegerDefault0/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "/minLength", 115s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/$ref/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeInteger/minimum", 115s # "error": "value is less than 0", 115s # "instanceLocation": "/minLength", 115s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeIntegerDefault0/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "/minLength", 115s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/$ref/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 671 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 672 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "/$ref", 115s # "keywordLocation": "/properties/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "/$ref", 115s # "keywordLocation": "/properties/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 673 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 674 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/is-string/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/$ref", 115s # "keywordLocation": "/properties/$ref/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/is-string/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/$ref", 115s # "keywordLocation": "/properties/$ref/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 675 - ref.json: "$ref to boolean schema true" - "any value is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 676 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/bool", 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/bool", 115s # "error": "subschema is false", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 677 - ref.json: "Recursive references between schemas" - "valid tree" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 678 - ref.json: "Recursive references between schemas" - "invalid tree" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 115s # "error": "got string, not number", 115s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 115s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "/nodes/0/subtree/nodes/0", 115s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/nodes/0/subtree/nodes", 115s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "/nodes/0/subtree", 115s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "/nodes/0", 115s # "keywordLocation": "/properties/nodes/items/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/nodes", 115s # "keywordLocation": "/properties/nodes/items" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 115s # "error": "got string, not number", 115s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 115s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "/nodes/0/subtree/nodes/0", 115s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/nodes/0/subtree/nodes", 115s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "/nodes/0/subtree", 115s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "/nodes/0", 115s # "keywordLocation": "/properties/nodes/items/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/nodes", 115s # "keywordLocation": "/properties/nodes/items" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 679 - ref.json: "refs with quote" - "object with numbers is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 680 - ref.json: "refs with quote" - "object with strings is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 115s # "error": "got string, not number", 115s # "instanceLocation": "/foo\"bar", 115s # "keywordLocation": "/properties/foo\"bar/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 115s # "error": "got string, not number", 115s # "instanceLocation": "/foo\"bar", 115s # "keywordLocation": "/properties/foo\"bar/$ref/type" 115s # }, 115s # { 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 681 - ref.json: "Location-independent identifier" - "match" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 682 - ref.json: "Location-independent identifier" - "mismatch" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/A/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/A/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 683 - ref.json: "Reference an anchor with a non-relative URI" - "match" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 684 - ref.json: "Reference an anchor with a non-relative URI" - "mismatch" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 685 - ref.json: "Location-independent identifier with base URI change in subschema" - "match" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 686 - ref.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s 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" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s 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" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/enum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 689 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 690 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo/bar", 115s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/allOf" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo/bar", 115s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/allOf" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 691 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/allOf" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/allOf" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 692 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 693 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo/bar", 115s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/allOf" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo/bar", 115s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/allOf" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 694 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/allOf" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/allOf" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 695 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 696 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 697 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 698 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 699 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 115s # "error": "value is less than 30", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/minimum" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 115s # "error": "value is less than 30", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/minimum" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 700 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 701 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 702 - ref.json: "URN base URI with NSS" - "a string is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 703 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 704 - ref.json: "URN base URI with r-component" - "a string is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 705 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 706 - ref.json: "URN base URI with q-component" - "a string is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 707 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 708 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 709 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 710 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 711 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/foo", 115s # "keywordLocation": "/properties/foo/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 712 - ref.json: "ref to if" - "a non-integer is invalid due to the $ref" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 713 - ref.json: "ref to if" - "an integer is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 714 - ref.json: "ref to then" - "a non-integer is invalid due to the $ref" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 715 - ref.json: "ref to then" - "an integer is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 716 - ref.json: "ref to else" - "a non-integer is invalid due to the $ref" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 717 - ref.json: "ref to else" - "an integer is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 718 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 719 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 720 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 721 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 722 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 723 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 724 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 725 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions//definitions//type", 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions//definitions//type", 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/type" 115s # }, 115s # { 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 726 - refRemote.json: "remote ref" - "remote ref valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 727 - refRemote.json: "remote ref" - "remote ref invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/$ref/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/$ref/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 728 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 729 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/subSchemas.json#/definitions/integer/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/$ref/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/subSchemas.json#/definitions/integer/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/$ref/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 730 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 731 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/subSchemas.json#/definitions/integer/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/$ref/$ref/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/subSchemas.json#/definitions/integer/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/$ref/$ref/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 732 - refRemote.json: "base URI change" - "base URI change ref valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 733 - refRemote.json: "base URI change" - "base URI change ref invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "/0/0", 115s # "keywordLocation": "/items/items/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/items" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "/0/0", 115s # "keywordLocation": "/items/items/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/0", 115s # "keywordLocation": "/items/items" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/items" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 734 - refRemote.json: "base URI change - change folder" - "number is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 735 - refRemote.json: "base URI change - change folder" - "string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "/list/0", 115s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/list", 115s # "keywordLocation": "/properties/list/$ref/items" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "/list/0", 115s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/list", 115s # "keywordLocation": "/properties/list/$ref/items" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 736 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 737 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "/list/0", 115s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/list", 115s # "keywordLocation": "/properties/list/$ref/items" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "/list/0", 115s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 115s # "error": "subschema is not valid against all items", 115s # "instanceLocation": "/list", 115s # "keywordLocation": "/properties/list/$ref/items" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 738 - refRemote.json: "root ref in remote ref" - "string is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 739 - refRemote.json: "root ref in remote ref" - "null is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 740 - refRemote.json: "root ref in remote ref" - "object is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/definitions/orNull/anyOf/0/type", 115s # "error": "got object, not null", 115s # "instanceLocation": "/name", 115s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/type", 115s # "error": "got object, not string", 115s # "instanceLocation": "/name", 115s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/definitions/orNull/anyOf", 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "/name", 115s # "keywordLocation": "/properties/name/$ref/anyOf" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/definitions/orNull/anyOf/0/type", 115s # "error": "got object, not null", 115s # "instanceLocation": "/name", 115s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/type", 115s # "error": "got object, not string", 115s # "instanceLocation": "/name", 115s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/definitions/orNull/anyOf", 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "/name", 115s # "keywordLocation": "/properties/name/$ref/anyOf" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 741 - refRemote.json: "remote ref with ref to definitions" - "invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/definitions/inner/properties/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/definitions/inner/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/allOf" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/definitions/inner/properties/bar/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/bar", 115s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/definitions/inner/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/0/$ref/allOf" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 115s # "error": "subschema 0 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 742 - refRemote.json: "remote ref with ref to definitions" - "valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 743 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 744 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/locationIndependentIdentifier.json#/definitions/A/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/$ref/$ref/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/locationIndependentIdentifier.json#/definitions/A/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/$ref/$ref/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 745 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/name/foo", 115s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "/name", 115s # "keywordLocation": "/properties/name/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "/name/foo", 115s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "/name", 115s # "keywordLocation": "/properties/name/$ref/properties" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 115s # "error": "not all properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/properties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 746 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 747 - refRemote.json: "$ref to $ref finds location-independent $id" - "number is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 748 - refRemote.json: "$ref to $ref finds location-independent $id" - "non-number is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/detached-ref.json#/definitions/detached/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/$ref/$ref/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft7/detached-ref.json#/definitions/detached/type", 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/$ref/$ref/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 749 - required.json: "required validation" - "present required property is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 750 - required.json: "required validation" - "non-present required property is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing property: foo", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 751 - required.json: "required validation" - "ignores arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 752 - required.json: "required validation" - "ignores strings" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 753 - required.json: "required validation" - "ignores other non-objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 754 - required.json: "required default validation" - "not required by default" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 755 - required.json: "required with empty array" - "property not required" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 756 - required.json: "required with escaped characters" - "object with all properties present is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 757 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 758 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 759 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 760 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing properties: __proto__, toString, constructor", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing properties: __proto__, toString, constructor", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 761 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing properties: toString, constructor", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing properties: toString, constructor", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 762 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing properties: __proto__, constructor", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing properties: __proto__, constructor", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 763 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing properties: __proto__, toString", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "object is missing properties: __proto__, toString", 115s # "instanceLocation": "", 115s # "keywordLocation": "/required" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 764 - required.json: "required properties whose names are Javascript object property names" - "all present" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 765 - type.json: "integer type matches integers" - "an integer is an integer" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 766 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 767 - type.json: "integer type matches integers" - "a float is not an integer" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 768 - type.json: "integer type matches integers" - "a string is not an integer" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 769 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 770 - type.json: "integer type matches integers" - "an object is not an integer" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 771 - type.json: "integer type matches integers" - "an array is not an integer" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got array, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got array, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 772 - type.json: "integer type matches integers" - "a boolean is not an integer" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got boolean, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got boolean, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 773 - type.json: "integer type matches integers" - "null is not an integer" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not integer", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 774 - type.json: "number type matches numbers" - "an integer is a number" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 775 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 776 - type.json: "number type matches numbers" - "a float is a number" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 777 - type.json: "number type matches numbers" - "a string is not a number" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 778 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 779 - type.json: "number type matches numbers" - "an object is not a number" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 780 - type.json: "number type matches numbers" - "an array is not a number" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got array, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got array, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 781 - type.json: "number type matches numbers" - "a boolean is not a number" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got boolean, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got boolean, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 782 - type.json: "number type matches numbers" - "null is not a number" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not number", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 783 - type.json: "string type matches strings" - "1 is not a string" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 784 - type.json: "string type matches strings" - "a float is not a string" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 785 - type.json: "string type matches strings" - "a string is a string" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 786 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 787 - type.json: "string type matches strings" - "an empty string is still a string" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 788 - type.json: "string type matches strings" - "an object is not a string" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 789 - type.json: "string type matches strings" - "an array is not a string" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got array, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got array, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 790 - type.json: "string type matches strings" - "a boolean is not a string" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got boolean, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got boolean, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 791 - type.json: "string type matches strings" - "null is not a string" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 792 - type.json: "object type matches objects" - "an integer is not an object" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 793 - type.json: "object type matches objects" - "a float is not an object" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 794 - type.json: "object type matches objects" - "a string is not an object" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 795 - type.json: "object type matches objects" - "an object is an object" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 796 - type.json: "object type matches objects" - "an array is not an object" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got array, not object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got array, not object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 797 - type.json: "object type matches objects" - "a boolean is not an object" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got boolean, not object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got boolean, not object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 798 - type.json: "object type matches objects" - "null is not an object" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 799 - type.json: "array type matches arrays" - "an integer is not an array" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not array", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not array", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 800 - type.json: "array type matches arrays" - "a float is not an array" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not array", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not array", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 801 - type.json: "array type matches arrays" - "a string is not an array" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not array", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not array", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 802 - type.json: "array type matches arrays" - "an object is not an array" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not array", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not array", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 803 - type.json: "array type matches arrays" - "an array is an array" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 804 - type.json: "array type matches arrays" - "a boolean is not an array" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got boolean, not array", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got boolean, not array", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 805 - type.json: "array type matches arrays" - "null is not an array" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not array", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not array", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 806 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not boolean", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not boolean", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 807 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not boolean", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not boolean", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 808 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not boolean", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not boolean", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 809 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not boolean", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not boolean", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 810 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not boolean", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not boolean", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 811 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not boolean", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not boolean", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 812 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got array, not boolean", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got array, not boolean", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 813 - type.json: "boolean type matches booleans" - "true is a boolean" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 814 - type.json: "boolean type matches booleans" - "false is a boolean" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 815 - type.json: "boolean type matches booleans" - "null is not a boolean" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not boolean", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not boolean", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 816 - type.json: "null type matches only the null object" - "an integer is not null" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 817 - type.json: "null type matches only the null object" - "a float is not null" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 818 - type.json: "null type matches only the null object" - "zero is not null" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 819 - type.json: "null type matches only the null object" - "a string is not null" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 820 - type.json: "null type matches only the null object" - "an empty string is not null" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 821 - type.json: "null type matches only the null object" - "an object is not null" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 822 - type.json: "null type matches only the null object" - "an array is not null" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got array, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got array, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 823 - type.json: "null type matches only the null object" - "true is not null" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got boolean, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got boolean, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 824 - type.json: "null type matches only the null object" - "false is not null" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got boolean, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got boolean, not null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 825 - type.json: "null type matches only the null object" - "null is null" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 826 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 827 - type.json: "multiple types can be specified in an array" - "a string is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 828 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not one of integer, string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got number, not one of integer, string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 829 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not one of integer, string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got object, not one of integer, string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 830 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got array, not one of integer, string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got array, not one of integer, string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 831 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got boolean, not one of integer, string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got boolean, not one of integer, string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 832 - type.json: "multiple types can be specified in an array" - "null is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not one of integer, string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not one of integer, string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 833 - type.json: "type as array with one item" - "string is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 834 - type.json: "type as array with one item" - "number is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 835 - type.json: "type: array or object" - "array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 836 - type.json: "type: array or object" - "object is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 837 - type.json: "type: array or object" - "number is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not one of array, object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not one of array, object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 838 - type.json: "type: array or object" - "string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not one of array, object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not one of array, object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 839 - type.json: "type: array or object" - "null is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not one of array, object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got null, not one of array, object", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 840 - type.json: "type: array, object or null" - "array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 841 - type.json: "type: array, object or null" - "object is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 842 - type.json: "type: array, object or null" - "null is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 843 - type.json: "type: array, object or null" - "number is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not one of array, object, null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not one of array, object, null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 844 - type.json: "type: array, object or null" - "string is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not one of array, object, null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got string, not one of array, object, null", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 845 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 846 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 847 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 2 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 2 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 848 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 849 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 850 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 851 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 852 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 2 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 2 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 853 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 854 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 855 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 856 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 857 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 858 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 859 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 860 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 2 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 2 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 861 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 862 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 863 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 864 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 865 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 866 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 867 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 868 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 4 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 4 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 869 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 870 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 871 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 872 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 873 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 874 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 875 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 876 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 877 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 878 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 879 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 2 and 3 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 2 and 3 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 880 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 2 and 3 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 2 and 3 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 881 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 882 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 883 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 884 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "items at indices 0 and 1 are not unique", 115s # "instanceLocation": "", 115s # "keywordLocation": "/uniqueItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 885 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "additional item not permitted", 115s # "instanceLocation": "/2", 115s # "keywordLocation": "/additionalItems" 115s # }, 115s # { 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "additional item not permitted", 115s # "instanceLocation": "/2", 115s # "keywordLocation": "/additionalItems" 115s # }, 115s # { 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 886 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 887 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 888 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 889 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 890 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 891 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 892 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 893 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 894 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 895 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 896 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 897 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 898 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 899 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 900 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 901 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 902 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 903 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 904 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 905 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 906 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 907 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 908 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 909 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 910 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 911 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 912 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 913 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "additional item not permitted", 115s # "instanceLocation": "/2", 115s # "keywordLocation": "/additionalItems" 115s # }, 115s # { 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "additional item not permitted", 115s # "instanceLocation": "/2", 115s # "keywordLocation": "/additionalItems" 115s # }, 115s # { 115s # "error": "subschema is not valid against all additional items", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalItems" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 914 - optional/bignum.json: "integer" - "a bignum is an integer" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 915 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 916 - optional/bignum.json: "number" - "a bignum is a number" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 917 - optional/bignum.json: "number" - "a negative bignum is a number" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 918 - optional/bignum.json: "string" - "a bignum is not a string" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "got integer, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/type" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 919 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 920 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 115s # "instanceLocation": "", 115s # "keywordLocation": "/exclusiveMaximum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 115s # "instanceLocation": "", 115s # "keywordLocation": "/exclusiveMaximum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 921 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 922 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 115s # "instanceLocation": "", 115s # "keywordLocation": "/exclusiveMinimum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 115s # "instanceLocation": "", 115s # "keywordLocation": "/exclusiveMinimum" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s # 115s ok 923 - optional/content.json: "validation of string-encoded content based on media type" - "a valid JSON document" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 924 - optional/content.json: "validation of string-encoded content based on media type" - "an invalid JSON document" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1190.", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contentMediaType" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1190.", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contentMediaType" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 925 - optional/content.json: "validation of string-encoded content based on media type" - "ignores non-strings" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 926 - optional/content.json: "validation of binary string-encoding" - "a valid base64 string" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 927 - optional/content.json: "validation of binary string-encoding" - "an invalid base64 string (% is not a valid character)" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "could not decode base64 string: invalid characters", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contentEncoding" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "could not decode base64 string: invalid characters", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contentEncoding" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 928 - optional/content.json: "validation of binary string-encoding" - "ignores non-strings" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 929 - optional/content.json: "validation of binary-encoded media type documents" - "a valid base64-encoded JSON document" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 930 - optional/content.json: "validation of binary-encoded media type documents" - "a validly-encoded invalid JSON document" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\\n\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1190.", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contentMediaType" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\\n\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1190.", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contentMediaType" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 931 - optional/content.json: "validation of binary-encoded media type documents" - "an invalid base64 string that is valid JSON" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "could not decode base64 string: invalid characters", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contentEncoding" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "could not decode base64 string: invalid characters", 115s # "instanceLocation": "", 115s # "keywordLocation": "/contentEncoding" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 932 - optional/content.json: "validation of binary-encoded media type documents" - "ignores non-strings" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 933 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "missing bar is invalid" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired/foo", 115s # "error": "object is missing property: bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/1/$ref/dependentRequired/foo" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired", 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/1/$ref/dependentRequired" 115s # }, 115s # { 115s # "error": "subschema 1 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired/foo", 115s # "error": "object is missing property: bar", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/1/$ref/dependentRequired/foo" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired", 115s # "error": "not all dependencies are satisfied", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf/1/$ref/dependentRequired" 115s # }, 115s # { 115s # "error": "subschema 1 is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/allOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 934 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "present bar is valid" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 935 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 936 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 937 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 938 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 939 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 940 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 941 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 942 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 943 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true # 115s 1..1 115s } 115s 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" 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s not ok 1 - evaluation result is incorrect # 115s # Failed test (with amnesty) 'evaluation result is incorrect' 115s # at t/zzz-acceptance-draft7.t line 51. 115s # expected false; got true 115s # schema: { 115s # "pattern": "^\\d$", 115s # "type": "string" 115s # } 115s # data: "߀" 115s # result: { 115s # "valid": true 115s # } 115s 1..1 115s } 115s 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" 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s not ok 1 - evaluation result is incorrect # 115s # Failed test (with amnesty) 'evaluation result is incorrect' 115s # at t/zzz-acceptance-draft7.t line 51. 115s # expected false; got true 115s # schema: { 115s # "pattern": "^\\d$", 115s # "type": "string" 115s # } 115s # data: "߀" 115s # result: { 115s # "valid": true 115s # } 115s 1..1 115s } 115s 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" 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false # 115s 1..1 115s } 115s 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" 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s not ok 1 - evaluation result is incorrect # 115s # Failed test (with amnesty) 'evaluation result is incorrect' 115s # at t/zzz-acceptance-draft7.t line 51. 115s # expected true; got false 115s # schema: { 115s # "pattern": "^\\D$", 115s # "type": "string" 115s # } 115s # data: "߀" 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s 1..1 115s } 115s 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" 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s not ok 1 - evaluation result is incorrect # 115s # Failed test (with amnesty) 'evaluation result is incorrect' 115s # at t/zzz-acceptance-draft7.t line 51. 115s # expected true; got false 115s # schema: { 115s # "pattern": "^\\D$", 115s # "type": "string" 115s # } 115s # data: "߀" 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s 1..1 115s } 115s ok 949 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true # 115s 1..1 115s } 115s 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" 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s not ok 1 - evaluation result is incorrect # 115s # Failed test (with amnesty) 'evaluation result is incorrect' 115s # at t/zzz-acceptance-draft7.t line 51. 115s # expected false; got true 115s # schema: { 115s # "pattern": "^\\w$", 115s # "type": "string" 115s # } 115s # data: "é" 115s # result: { 115s # "valid": true 115s # } 115s 1..1 115s } 115s 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" 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false # 115s 1..1 115s } 115s 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" 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s not ok 1 - evaluation result is incorrect # 115s # Failed test (with amnesty) 'evaluation result is incorrect' 115s # at t/zzz-acceptance-draft7.t line 51. 115s # expected true; got false 115s # schema: { 115s # "pattern": "^\\W$", 115s # "type": "string" 115s # } 115s # data: "é" 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s 1..1 115s } 115s ok 953 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 954 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 955 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 956 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 957 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 958 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s not ok 1 - evaluation result is incorrect # 115s # Failed test (with amnesty) 'evaluation result is incorrect' 115s # at t/zzz-acceptance-draft7.t line 51. 115s # expected true; got false 115s # schema: { 115s # "pattern": "^\\s$", 115s # "type": "string" 115s # } 115s # data: "" 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s 1..1 115s } 115s ok 959 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 960 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 961 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 962 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 963 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 964 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 965 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 966 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 967 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 968 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s 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" 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s not ok 1 - evaluation result is incorrect # 115s # Failed test (with amnesty) 'evaluation result is incorrect' 115s # at t/zzz-acceptance-draft7.t line 51. 115s # expected false; got true 115s # schema: { 115s # "pattern": "^\\S$", 115s # "type": "string" 115s # } 115s # data: "" 115s # result: { 115s # "valid": true 115s # } 115s 1..1 115s } 115s ok 970 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 971 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 972 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 973 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 974 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 975 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 976 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 977 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 978 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 979 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s 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" 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s not ok 1 - evaluation result is incorrect # 115s # Failed test (with amnesty) 'evaluation result is incorrect' 115s # at t/zzz-acceptance-draft7.t line 51. 115s # expected false; got true 115s # schema: { 115s # "pattern": "\\wcole" 115s # } 115s # 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." 115s # result: { 115s # "valid": true 115s # } 115s 1..1 115s } 115s 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" 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s not ok 1 - evaluation result is incorrect # 115s # Failed test (with amnesty) 'evaluation result is incorrect' 115s # at t/zzz-acceptance-draft7.t line 51. 115s # expected false; got true 115s # schema: { 115s # "pattern": "\\wcole" 115s # } 115s # 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." 115s # result: { 115s # "valid": true 115s # } 115s 1..1 115s } 115s ok 982 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 983 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 984 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 985 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 986 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 987 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s 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" 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s not ok 1 - evaluation result is incorrect # 115s # Failed test (with amnesty) 'evaluation result is incorrect' 115s # at t/zzz-acceptance-draft7.t line 51. 115s # expected false; got true 115s # schema: { 115s # "pattern": "^\\d+$" 115s # } 115s # data: "৪২" 115s # result: { 115s # "valid": true 115s # } 115s 1..1 115s } 115s ok 989 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 990 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "pattern does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/pattern" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 991 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 992 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 993 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 994 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 995 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/L'ÉCOLE", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/L'ÉCOLE", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 996 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s 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" 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s not ok 1 - evaluation result is incorrect # 115s # Failed test (with amnesty) 'evaluation result is incorrect' 115s # at t/zzz-acceptance-draft7.t line 51. 115s # expected false; got true 115s # schema: { 115s # "additionalProperties": false, 115s # "patternProperties": { 115s # "\\wcole": true 115s # }, 115s # "type": "object" 115s # } 115s # data: { 115s # "l'école": "pas de vraie vie" 115s # } 115s # result: { 115s # "valid": true 115s # } 115s 1..1 115s } 115s 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" 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s not ok 1 - evaluation result is incorrect # 115s # Failed test (with amnesty) 'evaluation result is incorrect' 115s # at t/zzz-acceptance-draft7.t line 51. 115s # expected false; got true 115s # schema: { 115s # "additionalProperties": false, 115s # "patternProperties": { 115s # "\\wcole": true 115s # }, 115s # "type": "object" 115s # } 115s # data: { 115s # "l'école": "pas de vraie vie" 115s # } 115s # result: { 115s # "valid": true 115s # } 115s 1..1 115s } 115s ok 999 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/L'ÉCOLE", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/L'ÉCOLE", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 1000 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/l'école", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/l'école", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 1001 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/l'école", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/l'école", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 1002 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 1003 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 1004 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/-%#", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/-%#", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s 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" 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s not ok 1 - evaluation result is incorrect # 115s # Failed test (with amnesty) 'evaluation result is incorrect' 115s # at t/zzz-acceptance-draft7.t line 51. 115s # expected false; got true 115s # schema: { 115s # "additionalProperties": false, 115s # "patternProperties": { 115s # "^\\d+$": true 115s # }, 115s # "type": "object" 115s # } 115s # data: { 115s # "৪২": "khajit has wares if you have coin" 115s # } 115s # result: { 115s # "valid": true 115s # } 115s 1..1 115s } 115s ok 1006 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 1007 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 115s # result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/-%#", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "error": "additional property not permitted", 115s # "instanceLocation": "/-%#", 115s # "keywordLocation": "/additionalProperties" 115s # }, 115s # { 115s # "error": "not all additional properties are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/additionalProperties" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 1008 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 1009 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s # 115s ok 1010 - optional/id.json: "id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 1011 - optional/id.json: "id inside an enum is not a real identifier" - "match $ref to id" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 1012 - optional/id.json: "id inside an enum is not a real identifier" - "no match on enum or $ref to id" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/$ref/enum" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/1/$ref/type" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/0/$ref/enum" 115s # }, 115s # { 115s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 115s # "error": "got integer, not string", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf/1/$ref/type" 115s # }, 115s # { 115s # "error": "no subschemas are valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/anyOf" 115s # } 115s # ], 115s # "valid": false 115s # } 115s ok 1 - test passes: data is valid: false 115s 1..1 115s } 115s ok 1013 - optional/id.json: "non-schema object containing a plain-name $id property" - "skip traversing definition for a valid result" { 115s # result: { 115s # "valid": true 115s # } 115s # short-circuited result: { 115s # "valid": true 115s # } 115s ok 1 - test passes: data is valid: true 115s 1..1 115s } 115s ok 1014 - optional/id.json: "non-schema object containing a plain-name $id property" - "const at const_not_anchor does not match" { 115s # result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else/$ref/const" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else" 115s # } 115s # ], 115s # "valid": false 115s # } 115s # short-circuited result: { 115s # "errors": [ 115s # { 115s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 115s # "error": "value does not match", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else/$ref/const" 115s # }, 115s # { 115s # "error": "subschema is not valid", 115s # "instanceLocation": "", 115s # "keywordLocation": "/else" 115s # } 116s # ], 116s # "valid": false 116s # } 116s ok 1 - test passes: data is valid: false 116s 1..1 116s } 116s ok 1015 - optional/id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 116s # result: { 116s # "valid": true 116s # } 116s # short-circuited result: { 116s # "valid": true 116s # } 116s ok 1 - test passes: data is valid: true 116s 1..1 116s } 116s ok 1016 - optional/id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 116s # result: { 116s # "errors": [ 116s # { 116s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 116s # "error": "value does not match", 116s # "instanceLocation": "", 116s # "keywordLocation": "/else/$ref/const" 116s # }, 116s # { 116s # "error": "subschema is not valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/else" 116s # } 116s # ], 116s # "valid": false 116s # } 116s # short-circuited result: { 116s # "errors": [ 116s # { 116s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 116s # "error": "value does not match", 116s # "instanceLocation": "", 116s # "keywordLocation": "/else/$ref/const" 116s # }, 116s # { 116s # "error": "subschema is not valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/else" 116s # } 116s # ], 116s # "valid": false 116s # } 116s ok 1 - test passes: data is valid: false 116s 1..1 116s } 116s # 116s ok 1017 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 116s # result: { 116s # "valid": true 116s # } 116s # short-circuited result: { 116s # "valid": true 116s # } 116s ok 1 - test passes: data is valid: true 116s 1..1 116s } 116s ok 1018 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 116s # result: { 116s # "valid": true 116s # } 116s # short-circuited result: { 116s # "valid": true 116s # } 116s ok 1 - test passes: data is valid: true 116s 1..1 116s } 116s ok 1019 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 116s # result: { 116s # "valid": true 116s # } 116s # short-circuited result: { 116s # "valid": true 116s # } 116s ok 1 - test passes: data is valid: true 116s 1..1 116s } 116s ok 1020 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 116s # result: { 116s # "errors": [ 116s # { 116s # "error": "pattern does not match", 116s # "instanceLocation": "", 116s # "keywordLocation": "/pattern" 116s # } 116s # ], 116s # "valid": false 116s # } 116s # short-circuited result: { 116s # "errors": [ 116s # { 116s # "error": "pattern does not match", 116s # "instanceLocation": "", 116s # "keywordLocation": "/pattern" 116s # } 116s # ], 116s # "valid": false 116s # } 116s ok 1 - test passes: data is valid: false 116s 1..1 116s } 116s ok 1021 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 116s # result: { 116s # "errors": [ 116s # { 116s # "error": "pattern does not match", 116s # "instanceLocation": "", 116s # "keywordLocation": "/pattern" 116s # } 116s # ], 116s # "valid": false 116s # } 116s # short-circuited result: { 116s # "errors": [ 116s # { 116s # "error": "pattern does not match", 116s # "instanceLocation": "", 116s # "keywordLocation": "/pattern" 116s # } 116s # ], 116s # "valid": false 116s # } 116s ok 1 - test passes: data is valid: false 116s 1..1 116s } 116s ok 1022 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 116s # result: { 116s # "errors": [ 116s # { 116s # "error": "pattern does not match", 116s # "instanceLocation": "", 116s # "keywordLocation": "/pattern" 116s # } 116s # ], 116s # "valid": false 116s # } 116s # short-circuited result: { 116s # "errors": [ 116s # { 116s # "error": "pattern does not match", 116s # "instanceLocation": "", 116s # "keywordLocation": "/pattern" 116s # } 116s # ], 116s # "valid": false 116s # } 116s ok 1 - test passes: data is valid: false 116s 1..1 116s } 116s ok 1023 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 116s # result: { 116s # "errors": [ 116s # { 116s # "error": "pattern does not match", 116s # "instanceLocation": "", 116s # "keywordLocation": "/pattern" 116s # } 116s # ], 116s # "valid": false 116s # } 116s # short-circuited result: { 116s # "errors": [ 116s # { 116s # "error": "pattern does not match", 116s # "instanceLocation": "", 116s # "keywordLocation": "/pattern" 116s # } 116s # ], 116s # "valid": false 116s # } 116s ok 1 - test passes: data is valid: false 116s 1..1 116s } 116s ok 1024 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 116s # result: { 116s # "valid": true 116s # } 116s # short-circuited result: { 116s # "valid": true 116s # } 116s ok 1 - test passes: data is valid: true 116s 1..1 116s } 116s ok 1025 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 116s # result: { 116s # "valid": true 116s # } 116s # short-circuited result: { 116s # "valid": true 116s # } 116s ok 1 - test passes: data is valid: true 116s 1..1 116s } 116s ok 1026 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 116s # result: { 116s # "valid": true 116s # } 116s # short-circuited result: { 116s # "valid": true 116s # } 116s ok 1 - test passes: data is valid: true 116s 1..1 116s } 116s ok 1027 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 116s # result: { 116s # "errors": [ 116s # { 116s # "error": "got string, not integer", 116s # "instanceLocation": "/🐲", 116s # "keywordLocation": "/patternProperties/^🐲*$/type" 116s # }, 116s # { 116s # "error": "not all properties are valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/patternProperties" 116s # } 116s # ], 116s # "valid": false 116s # } 116s # short-circuited result: { 116s # "errors": [ 116s # { 116s # "error": "got string, not integer", 116s # "instanceLocation": "/🐲", 116s # "keywordLocation": "/patternProperties/^🐲*$/type" 116s # }, 116s # { 116s # "error": "not all properties are valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/patternProperties" 116s # } 116s # ], 116s # "valid": false 116s # } 116s ok 1 - test passes: data is valid: false 116s 1..1 116s } 116s ok 1028 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 116s # result: { 116s # "errors": [ 116s # { 116s # "error": "got string, not integer", 116s # "instanceLocation": "/🐲🐲", 116s # "keywordLocation": "/patternProperties/^🐲*$/type" 116s # }, 116s # { 116s # "error": "not all properties are valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/patternProperties" 116s # } 116s # ], 116s # "valid": false 116s # } 116s # short-circuited result: { 116s # "errors": [ 116s # { 116s # "error": "got string, not integer", 116s # "instanceLocation": "/🐲🐲", 116s # "keywordLocation": "/patternProperties/^🐲*$/type" 116s # }, 116s # { 116s # "error": "not all properties are valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/patternProperties" 116s # } 116s # ], 116s # "valid": false 116s # } 116s ok 1 - test passes: data is valid: false 116s 1..1 116s } 116s # 116s 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" { 116s # result: { 116s # "valid": true 116s # } 116s # short-circuited result: { 116s # "valid": true 116s # } 116s ok 1 - test passes: data is valid: true 116s 1..1 116s } 116s ok 1030 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 116s # result: { 116s # "errors": [ 116s # { 116s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 116s # "error": "subschema is valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/anyOf/0/$ref/not" 116s # }, 116s # { 116s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 116s # "error": "subschema is valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/anyOf/1/$ref/not" 116s # }, 116s # { 116s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 116s # "error": "got null, not string", 116s # "instanceLocation": "", 116s # "keywordLocation": "/anyOf/2/$ref/type" 116s # }, 116s # { 116s # "error": "no subschemas are valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/anyOf" 116s # } 116s # ], 116s # "valid": false 116s # } 116s # short-circuited result: { 116s # "errors": [ 116s # { 116s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 116s # "error": "subschema is valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/anyOf/0/$ref/not" 116s # }, 116s # { 116s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 116s # "error": "subschema is valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/anyOf/1/$ref/not" 116s # }, 116s # { 116s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 116s # "error": "got null, not string", 116s # "instanceLocation": "", 116s # "keywordLocation": "/anyOf/2/$ref/type" 116s # }, 116s # { 116s # "error": "no subschemas are valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/anyOf" 116s # } 116s # ], 116s # "valid": false 116s # } 116s ok 1 - test passes: data is valid: false 116s 1..1 116s } 116s ok 1031 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 116s # result: { 116s # "errors": [ 116s # { 116s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 116s # "error": "subschema is valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/anyOf/0/$ref/not" 116s # }, 116s # { 116s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 116s # "error": "subschema is valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/anyOf/1/$ref/not" 116s # }, 116s # { 116s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 116s # "error": "got integer, not string", 116s # "instanceLocation": "", 116s # "keywordLocation": "/anyOf/2/$ref/type" 116s # }, 116s # { 116s # "error": "no subschemas are valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/anyOf" 116s # } 116s # ], 116s # "valid": false 116s # } 116s # short-circuited result: { 116s # "errors": [ 116s # { 116s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 116s # "error": "subschema is valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/anyOf/0/$ref/not" 116s # }, 116s # { 116s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 116s # "error": "subschema is valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/anyOf/1/$ref/not" 116s # }, 116s # { 116s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 116s # "error": "got integer, not string", 116s # "instanceLocation": "", 116s # "keywordLocation": "/anyOf/2/$ref/type" 116s # }, 116s # { 116s # "error": "no subschemas are valid", 116s # "instanceLocation": "", 116s # "keywordLocation": "/anyOf" 116s # } 116s # ], 116s # "valid": false 116s # } 116s ok 1 - test passes: data is valid: false 116s 1..1 116s } 116s # 116s # generated with: Test::JSON::Schema::Acceptance 1.029 116s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 116s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 116s # specification version: draft7 116s # optional tests included: yes 116s # skipping directory: optional/format 116s # 116s # filename pass todo-fail fail 116s # --------------------------------------------------------------- 116s # additionalItems.json 20 0 0 116s # additionalProperties.json 16 0 0 116s # allOf.json 30 0 0 116s # anyOf.json 18 0 0 116s # boolean_schema.json 18 0 0 116s # const.json 50 0 0 116s # contains.json 21 0 0 116s # default.json 7 0 0 116s # definitions.json 2 0 0 116s # dependencies.json 36 0 0 116s # enum.json 45 0 0 116s # exclusiveMaximum.json 4 0 0 116s # exclusiveMinimum.json 4 0 0 116s # format.json 102 0 0 116s # if-then-else.json 26 0 0 116s # infinite-loop-detection.json 2 0 0 116s # items.json 28 0 0 116s # maxItems.json 6 0 0 116s # maxLength.json 7 0 0 116s # maxProperties.json 10 0 0 116s # maximum.json 8 0 0 116s # minItems.json 6 0 0 116s # minLength.json 7 0 0 116s # minProperties.json 8 0 0 116s # minimum.json 11 0 0 116s # multipleOf.json 10 0 0 116s # not.json 38 0 0 116s # oneOf.json 27 0 0 116s # pattern.json 9 0 0 116s # patternProperties.json 23 0 0 116s # properties.json 28 0 0 116s # propertyNames.json 20 0 0 116s # ref.json 78 0 0 116s # refRemote.json 23 0 0 116s # required.json 16 0 0 116s # type.json 80 0 0 116s # uniqueItems.json 69 0 0 116s # optional/bignum.json 9 0 0 116s # optional/content.json 10 0 0 116s # optional/cross-draft.json 2 0 0 116s # optional/ecmascript-regex.json 60 14 0 116s # optional/float-overflow.json 1 0 0 116s # optional/id.json 7 0 0 116s # optional/non-bmp-regex.json 12 0 0 116s # optional/unknownKeyword.json 3 0 0 116s # --------------------------------------------------------------- 116s # TOTAL 1017 14 0 116s # 116s # Congratulations, all non-optional tests are passing! 116s # 116s ok 1032 - no leaks in the main evaluator object 116s ok 1033 - no leaks in the short-circuiting evaluator object 116s 1..1033 116s ok 116s t/zzz-check-breaks.t .................... 116s 1..2 116s ok 1 # skip no conflicts module found to check against 116s ok 2 - checked x_breaks data 116s ok 116s All tests successful. 116s 116s Test Summary Report 116s ------------------- 116s t/zzz-acceptance-draft2019-09-format.t (Wstat: 0 Tests: 485 Failed: 0) 116s TODO passed: 149-205, 270-282, 294, 427-436, 462 116s t/zzz-acceptance-draft2019-09.t (Wstat: 0 Tests: 1383 Failed: 0) 116s TODO passed: 1244-1279, 1288-1297, 1303, 1314, 1325-1326 116s 1333, 1342-1343, 1350, 1373-1378 116s t/zzz-acceptance-draft2020-12-format.t (Wstat: 0 Tests: 493 Failed: 0) 116s TODO passed: 99, 120-121, 157-213, 278-290, 302, 435-444 116s 470 116s t/zzz-acceptance-draft2020-12.t (Wstat: 0 Tests: 1417 Failed: 0) 116s TODO passed: 1272-1307, 1318-1327, 1333, 1344, 1355-1356 116s 1363, 1372-1373, 1380, 1407-1412 116s t/zzz-acceptance-draft4-format.t (Wstat: 0 Tests: 155 Failed: 0) 116s TODO passed: 153 116s t/zzz-acceptance-draft4.t (Wstat: 0 Tests: 712 Failed: 0) 116s TODO passed: 628-637, 643, 654, 665-666, 673, 682-683 116s 690 116s t/zzz-acceptance-draft6-format.t (Wstat: 0 Tests: 216 Failed: 0) 116s TODO passed: 179-188, 214 116s t/zzz-acceptance-draft6.t (Wstat: 0 Tests: 937 Failed: 0) 116s TODO passed: 847-856, 862, 873, 884-885, 892, 901-902 116s 909 116s t/zzz-acceptance-draft7-format.t (Wstat: 0 Tests: 436 Failed: 0) 116s TODO passed: 122-177, 242-254, 266, 399-408, 434 116s t/zzz-acceptance-draft7.t (Wstat: 0 Tests: 1033 Failed: 0) 116s TODO passed: 943-952, 958, 969, 980-981, 988, 997-998 116s 1005 116s Files=45, Tests=10491, 45 wallclock secs ( 2.17 usr 0.12 sys + 42.91 cusr 1.66 csys = 46.86 CPU) 116s Result: PASS 116s autopkgtest [09:30:33]: test autodep8-perl-build-deps: -----------------------] 117s autodep8-perl-build-deps PASS 117s autopkgtest [09:30:34]: test autodep8-perl-build-deps: - - - - - - - - - - results - - - - - - - - - - 117s autopkgtest [09:30:34]: test autodep8-perl: preparing testbed 135s Creating nova instance adt-resolute-amd64-libjson-schema-modern-perl-20251102-092837-juju-7f2275-prod-proposed-migration-environment-15-e8d53987-bc14-47c3-b095-c393278aafbd from image adt/ubuntu-resolute-amd64-server-20251101.img (UUID 52e48a54-2032-4a7c-9d86-f677995aa72b)... 160s autopkgtest [09:31:17]: testbed dpkg architecture: amd64 160s autopkgtest [09:31:17]: testbed apt version: 3.1.11 161s autopkgtest [09:31:18]: @@@@@@@@@@@@@@@@@@@@ test bed setup 161s autopkgtest [09:31:18]: testbed release detected to be: resolute 161s autopkgtest [09:31:18]: updating testbed package index (apt update) 161s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 162s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 162s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 162s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 162s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [43.7 kB] 162s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [9848 B] 162s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [107 kB] 162s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1387 kB] 162s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [112 kB] 162s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [161 kB] 162s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 c-n-f Metadata [4440 B] 162s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 Packages [64.6 kB] 162s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/restricted i386 Packages [3744 B] 162s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 c-n-f Metadata [336 B] 163s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/universe i386 Packages [390 kB] 163s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [1038 kB] 163s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 c-n-f Metadata [34.8 kB] 163s Get:18 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 Packages [29.3 kB] 163s Get:19 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse i386 Packages [8844 B] 163s Get:20 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 c-n-f Metadata [1672 B] 163s Fetched 3484 kB in 1s (2350 kB/s) 164s Reading package lists... 164s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 164s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 164s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 165s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 165s Reading package lists... 165s Reading package lists... 165s Building dependency tree... 165s Reading state information... 165s Calculating upgrade... 165s The following packages will be upgraded: 165s apparmor intel-microcode libapparmor1 libexpat1 libffi8 libuv1t64 165s 6 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 165s Need to get 12.5 MB of archives. 165s After this operation, 8192 B of additional disk space will be used. 165s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 libexpat1 amd64 2.7.3-1 [91.4 kB] 165s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 libapparmor1 amd64 5.0.0~alpha1-0ubuntu9 [57.7 kB] 165s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 libffi8 amd64 3.5.2-2 [25.6 kB] 165s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 apparmor amd64 5.0.0~alpha1-0ubuntu9 [711 kB] 166s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 libuv1t64 amd64 1.51.0-2ubuntu1 [103 kB] 166s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 intel-microcode amd64 3.20250812.1ubuntu1 [11.5 MB] 168s dpkg-preconfigure: unable to re-open stdin: No such file or directory 168s Fetched 12.5 MB in 2s (5596 kB/s) 168s (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 ... 78534 files and directories currently installed.) 168s Preparing to unpack .../0-libexpat1_2.7.3-1_amd64.deb ... 168s Unpacking libexpat1:amd64 (2.7.3-1) over (2.7.1-2) ... 168s Preparing to unpack .../1-libapparmor1_5.0.0~alpha1-0ubuntu9_amd64.deb ... 168s Unpacking libapparmor1:amd64 (5.0.0~alpha1-0ubuntu9) over (5.0.0~alpha1-0ubuntu8.1) ... 168s Preparing to unpack .../2-libffi8_3.5.2-2_amd64.deb ... 168s Unpacking libffi8:amd64 (3.5.2-2) over (3.5.2-1build1) ... 168s Preparing to unpack .../3-apparmor_5.0.0~alpha1-0ubuntu9_amd64.deb ... 168s Unpacking apparmor (5.0.0~alpha1-0ubuntu9) over (5.0.0~alpha1-0ubuntu8.1) ... 169s Preparing to unpack .../4-libuv1t64_1.51.0-2ubuntu1_amd64.deb ... 169s Unpacking libuv1t64:amd64 (1.51.0-2ubuntu1) over (1.50.0-2ubuntu1) ... 169s Preparing to unpack .../5-intel-microcode_3.20250812.1ubuntu1_amd64.deb ... 169s Unpacking intel-microcode (3.20250812.1ubuntu1) over (3.20250512.1ubuntu1) ... 169s Setting up libexpat1:amd64 (2.7.3-1) ... 169s Setting up libapparmor1:amd64 (5.0.0~alpha1-0ubuntu9) ... 169s Setting up intel-microcode (3.20250812.1ubuntu1) ... 169s intel-microcode: microcode will be updated at next boot 169s Setting up libuv1t64:amd64 (1.51.0-2ubuntu1) ... 169s Setting up apparmor (5.0.0~alpha1-0ubuntu9) ... 169s Installing new version of config file /etc/apparmor.d/lsblk ... 169s Installing new version of config file /etc/apparmor.d/systemd-detect-virt ... 169s Installing new version of config file /etc/apparmor.d/tnftp ... 170s Reloading AppArmor profiles 171s Setting up libffi8:amd64 (3.5.2-2) ... 171s Processing triggers for libc-bin (2.42-0ubuntu3) ... 171s Processing triggers for systemd (257.9-0ubuntu2) ... 171s Processing triggers for man-db (2.13.1-1) ... 172s Processing triggers for procps (2:4.0.4-8ubuntu3) ... 172s Processing triggers for initramfs-tools (0.150ubuntu4) ... 172s update-initramfs: Generating /boot/initrd.img-6.17.0-5-generic 176s autopkgtest [09:31:33]: upgrading testbed (apt dist-upgrade and autopurge) 176s Reading package lists... 176s Building dependency tree... 176s Reading state information... 176s Calculating upgrade... 176s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 176s Reading package lists... 177s Building dependency tree... 177s Reading state information... 177s Solving dependencies... 177s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 177s autopkgtest [09:31:34]: rebooting testbed after setup commands that affected boot 193s Reading package lists... 193s Building dependency tree... 193s Reading state information... 193s Solving dependencies... 193s The following NEW packages will be installed: 193s autodep8 dctrl-tools javascript-common libautovivification-perl 193s libb-hooks-endofscope-perl libb-hooks-op-check-perl libbuiltin-compat-perl 193s libclass-inspector-perl libclass-method-modifiers-perl 193s libclass-xsaccessor-perl libcpanel-json-xs-perl libdata-optlist-perl 193s libdevel-callchecker-perl libdynaloader-functions-perl libexporter-tiny-perl 193s libfeature-compat-try-perl libfile-sharedir-perl 193s libgetopt-long-descriptive-perl libimport-into-perl libio-stringy-perl 193s libjs-bootstrap5 libjs-highlight.js libjs-popper.js 193s libjson-schema-modern-perl libmodule-implementation-perl 193s libmodule-runtime-perl libmojolicious-perl libmoo-perl libmoox-typetiny-perl 193s libnamespace-clean-perl libpackage-stash-perl libparams-classify-perl 193s libparams-util-perl libparams-validate-perl libpath-tiny-perl 193s libref-util-perl librole-tiny-perl libsafe-isa-perl libstrictures-perl 193s libsub-exporter-perl libsub-exporter-progressive-perl libsub-identify-perl 193s libsub-install-perl libsub-name-perl libsub-quote-perl 193s libsyntax-keyword-try-perl libtry-tiny-perl libtype-tiny-perl 193s libvariable-magic-perl libxs-parse-keyword-perl libyaml-pp-perl node-popper2 193s pkg-perl-autopkgtest 193s 0 upgraded, 53 newly installed, 0 to remove and 0 not upgraded. 193s Need to get 3465 kB of archives. 193s After this operation, 18.0 MB of additional disk space will be used. 193s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 dctrl-tools amd64 2.24-3build3 [106 kB] 193s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 autodep8 all 0.30 [13.7 kB] 193s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 javascript-common all 12+nmu1 [4828 B] 193s Get:4 http://ftpmaster.internal/ubuntu resolute/universe amd64 libautovivification-perl amd64 0.18-2build5 [22.6 kB] 193s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 libb-hooks-op-check-perl amd64 0.22-3build2 [9624 B] 193s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 libdynaloader-functions-perl all 0.004-2 [11.5 kB] 193s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 libdevel-callchecker-perl amd64 0.009-2 [14.2 kB] 193s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 libparams-classify-perl amd64 0.015-2build6 [20.1 kB] 193s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 libmodule-runtime-perl all 0.018-1 [15.2 kB] 193s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 libtry-tiny-perl all 0.32-1 [21.2 kB] 193s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 libmodule-implementation-perl all 0.09-2 [12.0 kB] 193s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-exporter-progressive-perl all 0.001013-3 [6718 B] 193s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 libvariable-magic-perl amd64 0.64-1build1 [36.3 kB] 193s Get:14 http://ftpmaster.internal/ubuntu resolute/main amd64 libb-hooks-endofscope-perl all 0.28-2 [15.8 kB] 193s Get:15 http://ftpmaster.internal/ubuntu resolute/main amd64 libpackage-stash-perl all 0.40-1 [19.5 kB] 193s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-identify-perl amd64 0.14-3build4 [9904 B] 193s Get:17 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-name-perl amd64 0.28-1 [10.7 kB] 193s Get:18 http://ftpmaster.internal/ubuntu resolute/main amd64 libnamespace-clean-perl all 0.27-2 [14.0 kB] 193s Get:19 http://ftpmaster.internal/ubuntu resolute/universe amd64 libbuiltin-compat-perl all 0.003003-2 [6956 B] 193s Get:20 http://ftpmaster.internal/ubuntu resolute/main amd64 libclass-inspector-perl all 1.36-3 [15.4 kB] 193s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 libclass-method-modifiers-perl all 2.15-1 [16.1 kB] 193s Get:22 http://ftpmaster.internal/ubuntu resolute/main amd64 libclass-xsaccessor-perl amd64 1.19-4build6 [33.8 kB] 193s Get:23 http://ftpmaster.internal/ubuntu resolute/main amd64 libcpanel-json-xs-perl amd64 4.39-2 [116 kB] 193s Get:24 http://ftpmaster.internal/ubuntu resolute/main amd64 libparams-util-perl amd64 1.102-3build1 [21.4 kB] 193s Get:25 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-install-perl all 0.929-1 [9764 B] 193s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 libdata-optlist-perl all 0.114-1 [9708 B] 193s Get:27 http://ftpmaster.internal/ubuntu resolute/main amd64 libexporter-tiny-perl all 1.006002-1 [36.8 kB] 193s Get:28 http://ftpmaster.internal/ubuntu resolute/main amd64 libfile-sharedir-perl all 1.118-3 [14.0 kB] 193s Get:29 http://ftpmaster.internal/ubuntu resolute/main amd64 libxs-parse-keyword-perl amd64 0.49-1 [62.4 kB] 193s Get:30 http://ftpmaster.internal/ubuntu resolute/main amd64 libsyntax-keyword-try-perl amd64 0.30-1 [24.4 kB] 193s Get:31 http://ftpmaster.internal/ubuntu resolute/universe amd64 libfeature-compat-try-perl all 0.05-1 [9998 B] 193s Get:32 http://ftpmaster.internal/ubuntu resolute/main amd64 libio-stringy-perl all 2.113-2 [45.3 kB] 193s Get:33 http://ftpmaster.internal/ubuntu resolute/universe amd64 libparams-validate-perl amd64 1.31-2build4 [53.7 kB] 193s Get:34 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-exporter-perl all 0.990-1 [49.0 kB] 193s Get:35 http://ftpmaster.internal/ubuntu resolute/universe amd64 libgetopt-long-descriptive-perl all 0.116-2 [25.0 kB] 193s Get:36 http://ftpmaster.internal/ubuntu resolute/main amd64 libimport-into-perl all 1.002005-2 [10.7 kB] 193s Get:37 http://ftpmaster.internal/ubuntu resolute/universe amd64 node-popper2 all 2.11.2-9 [106 kB] 193s Get:38 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-bootstrap5 all 5.3.8+dfsg-1 [480 kB] 193s Get:39 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-highlight.js all 9.18.5+dfsg1-2 [385 kB] 193s Get:40 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-popper.js all 1.16.1+ds-6 [54.1 kB] 193s Get:41 http://ftpmaster.internal/ubuntu resolute/universe amd64 libmojolicious-perl all 9.39+dfsg-1 [761 kB] 194s Get:42 http://ftpmaster.internal/ubuntu resolute/main amd64 librole-tiny-perl all 2.002004-1 [16.3 kB] 194s Get:43 http://ftpmaster.internal/ubuntu resolute/main amd64 libsub-quote-perl all 2.006008-1ubuntu1 [20.7 kB] 194s Get:44 http://ftpmaster.internal/ubuntu resolute/main amd64 libmoo-perl all 2.005005-1 [47.4 kB] 194s Get:45 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtype-tiny-perl all 2.004000-2 [340 kB] 194s Get:46 http://ftpmaster.internal/ubuntu resolute/universe amd64 libmoox-typetiny-perl all 0.002003-4 [5930 B] 194s Get:47 http://ftpmaster.internal/ubuntu resolute/main amd64 libpath-tiny-perl all 0.148-1 [47.9 kB] 194s Get:48 http://ftpmaster.internal/ubuntu resolute/universe amd64 libref-util-perl all 0.204-2 [15.1 kB] 194s Get:49 http://ftpmaster.internal/ubuntu resolute/universe amd64 libsafe-isa-perl all 1.000010-1 [7684 B] 194s Get:50 http://ftpmaster.internal/ubuntu resolute/main amd64 libstrictures-perl all 2.000006-1 [16.3 kB] 194s Get:51 http://ftpmaster.internal/ubuntu resolute/universe amd64 libyaml-pp-perl all 0.39.0-1 [107 kB] 194s Get:52 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjson-schema-modern-perl all 0.620-1 [110 kB] 194s Get:53 http://ftpmaster.internal/ubuntu resolute/universe amd64 pkg-perl-autopkgtest all 0.82 [18.8 kB] 194s Fetched 3465 kB in 0s (10.0 MB/s) 194s Selecting previously unselected package dctrl-tools. 194s (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 ... 78534 files and directories currently installed.) 194s Preparing to unpack .../00-dctrl-tools_2.24-3build3_amd64.deb ... 194s Unpacking dctrl-tools (2.24-3build3) ... 194s Selecting previously unselected package autodep8. 194s Preparing to unpack .../01-autodep8_0.30_all.deb ... 194s Unpacking autodep8 (0.30) ... 194s Selecting previously unselected package javascript-common. 194s Preparing to unpack .../02-javascript-common_12+nmu1_all.deb ... 194s Unpacking javascript-common (12+nmu1) ... 194s Selecting previously unselected package libautovivification-perl:amd64. 194s Preparing to unpack .../03-libautovivification-perl_0.18-2build5_amd64.deb ... 194s Unpacking libautovivification-perl:amd64 (0.18-2build5) ... 194s Selecting previously unselected package libb-hooks-op-check-perl:amd64. 194s Preparing to unpack .../04-libb-hooks-op-check-perl_0.22-3build2_amd64.deb ... 194s Unpacking libb-hooks-op-check-perl:amd64 (0.22-3build2) ... 194s Selecting previously unselected package libdynaloader-functions-perl. 194s Preparing to unpack .../05-libdynaloader-functions-perl_0.004-2_all.deb ... 194s Unpacking libdynaloader-functions-perl (0.004-2) ... 194s Selecting previously unselected package libdevel-callchecker-perl:amd64. 194s Preparing to unpack .../06-libdevel-callchecker-perl_0.009-2_amd64.deb ... 194s Unpacking libdevel-callchecker-perl:amd64 (0.009-2) ... 194s Selecting previously unselected package libparams-classify-perl:amd64. 194s Preparing to unpack .../07-libparams-classify-perl_0.015-2build6_amd64.deb ... 194s Unpacking libparams-classify-perl:amd64 (0.015-2build6) ... 194s Selecting previously unselected package libmodule-runtime-perl. 194s Preparing to unpack .../08-libmodule-runtime-perl_0.018-1_all.deb ... 194s Unpacking libmodule-runtime-perl (0.018-1) ... 194s Selecting previously unselected package libtry-tiny-perl. 194s Preparing to unpack .../09-libtry-tiny-perl_0.32-1_all.deb ... 194s Unpacking libtry-tiny-perl (0.32-1) ... 194s Selecting previously unselected package libmodule-implementation-perl. 194s Preparing to unpack .../10-libmodule-implementation-perl_0.09-2_all.deb ... 194s Unpacking libmodule-implementation-perl (0.09-2) ... 194s Selecting previously unselected package libsub-exporter-progressive-perl. 194s Preparing to unpack .../11-libsub-exporter-progressive-perl_0.001013-3_all.deb ... 194s Unpacking libsub-exporter-progressive-perl (0.001013-3) ... 194s Selecting previously unselected package libvariable-magic-perl. 194s Preparing to unpack .../12-libvariable-magic-perl_0.64-1build1_amd64.deb ... 194s Unpacking libvariable-magic-perl (0.64-1build1) ... 194s Selecting previously unselected package libb-hooks-endofscope-perl. 194s Preparing to unpack .../13-libb-hooks-endofscope-perl_0.28-2_all.deb ... 194s Unpacking libb-hooks-endofscope-perl (0.28-2) ... 194s Selecting previously unselected package libpackage-stash-perl. 194s Preparing to unpack .../14-libpackage-stash-perl_0.40-1_all.deb ... 194s Unpacking libpackage-stash-perl (0.40-1) ... 194s Selecting previously unselected package libsub-identify-perl. 194s Preparing to unpack .../15-libsub-identify-perl_0.14-3build4_amd64.deb ... 194s Unpacking libsub-identify-perl (0.14-3build4) ... 194s Selecting previously unselected package libsub-name-perl:amd64. 194s Preparing to unpack .../16-libsub-name-perl_0.28-1_amd64.deb ... 194s Unpacking libsub-name-perl:amd64 (0.28-1) ... 194s Selecting previously unselected package libnamespace-clean-perl. 194s Preparing to unpack .../17-libnamespace-clean-perl_0.27-2_all.deb ... 194s Unpacking libnamespace-clean-perl (0.27-2) ... 194s Selecting previously unselected package libbuiltin-compat-perl. 194s Preparing to unpack .../18-libbuiltin-compat-perl_0.003003-2_all.deb ... 194s Unpacking libbuiltin-compat-perl (0.003003-2) ... 194s Selecting previously unselected package libclass-inspector-perl. 194s Preparing to unpack .../19-libclass-inspector-perl_1.36-3_all.deb ... 194s Unpacking libclass-inspector-perl (1.36-3) ... 194s Selecting previously unselected package libclass-method-modifiers-perl. 194s Preparing to unpack .../20-libclass-method-modifiers-perl_2.15-1_all.deb ... 194s Unpacking libclass-method-modifiers-perl (2.15-1) ... 194s Selecting previously unselected package libclass-xsaccessor-perl. 194s Preparing to unpack .../21-libclass-xsaccessor-perl_1.19-4build6_amd64.deb ... 194s Unpacking libclass-xsaccessor-perl (1.19-4build6) ... 194s Selecting previously unselected package libcpanel-json-xs-perl:amd64. 194s Preparing to unpack .../22-libcpanel-json-xs-perl_4.39-2_amd64.deb ... 194s Unpacking libcpanel-json-xs-perl:amd64 (4.39-2) ... 194s Selecting previously unselected package libparams-util-perl. 194s Preparing to unpack .../23-libparams-util-perl_1.102-3build1_amd64.deb ... 194s Unpacking libparams-util-perl (1.102-3build1) ... 194s Selecting previously unselected package libsub-install-perl. 194s Preparing to unpack .../24-libsub-install-perl_0.929-1_all.deb ... 194s Unpacking libsub-install-perl (0.929-1) ... 194s Selecting previously unselected package libdata-optlist-perl. 194s Preparing to unpack .../25-libdata-optlist-perl_0.114-1_all.deb ... 194s Unpacking libdata-optlist-perl (0.114-1) ... 194s Selecting previously unselected package libexporter-tiny-perl. 194s Preparing to unpack .../26-libexporter-tiny-perl_1.006002-1_all.deb ... 194s Unpacking libexporter-tiny-perl (1.006002-1) ... 194s Selecting previously unselected package libfile-sharedir-perl. 194s Preparing to unpack .../27-libfile-sharedir-perl_1.118-3_all.deb ... 194s Unpacking libfile-sharedir-perl (1.118-3) ... 194s Selecting previously unselected package libxs-parse-keyword-perl. 194s Preparing to unpack .../28-libxs-parse-keyword-perl_0.49-1_amd64.deb ... 194s Unpacking libxs-parse-keyword-perl (0.49-1) ... 194s Selecting previously unselected package libsyntax-keyword-try-perl. 194s Preparing to unpack .../29-libsyntax-keyword-try-perl_0.30-1_amd64.deb ... 194s Unpacking libsyntax-keyword-try-perl (0.30-1) ... 194s Selecting previously unselected package libfeature-compat-try-perl. 194s Preparing to unpack .../30-libfeature-compat-try-perl_0.05-1_all.deb ... 194s Unpacking libfeature-compat-try-perl (0.05-1) ... 194s Selecting previously unselected package libio-stringy-perl. 194s Preparing to unpack .../31-libio-stringy-perl_2.113-2_all.deb ... 194s Unpacking libio-stringy-perl (2.113-2) ... 194s Selecting previously unselected package libparams-validate-perl:amd64. 194s Preparing to unpack .../32-libparams-validate-perl_1.31-2build4_amd64.deb ... 194s Unpacking libparams-validate-perl:amd64 (1.31-2build4) ... 194s Selecting previously unselected package libsub-exporter-perl. 194s Preparing to unpack .../33-libsub-exporter-perl_0.990-1_all.deb ... 194s Unpacking libsub-exporter-perl (0.990-1) ... 194s Selecting previously unselected package libgetopt-long-descriptive-perl. 194s Preparing to unpack .../34-libgetopt-long-descriptive-perl_0.116-2_all.deb ... 194s Unpacking libgetopt-long-descriptive-perl (0.116-2) ... 194s Selecting previously unselected package libimport-into-perl. 194s Preparing to unpack .../35-libimport-into-perl_1.002005-2_all.deb ... 194s Unpacking libimport-into-perl (1.002005-2) ... 194s Selecting previously unselected package node-popper2. 194s Preparing to unpack .../36-node-popper2_2.11.2-9_all.deb ... 194s Unpacking node-popper2 (2.11.2-9) ... 194s Selecting previously unselected package libjs-bootstrap5. 194s Preparing to unpack .../37-libjs-bootstrap5_5.3.8+dfsg-1_all.deb ... 194s Unpacking libjs-bootstrap5 (5.3.8+dfsg-1) ... 194s Selecting previously unselected package libjs-highlight.js. 194s Preparing to unpack .../38-libjs-highlight.js_9.18.5+dfsg1-2_all.deb ... 194s Unpacking libjs-highlight.js (9.18.5+dfsg1-2) ... 194s Selecting previously unselected package libjs-popper.js. 194s Preparing to unpack .../39-libjs-popper.js_1.16.1+ds-6_all.deb ... 194s Unpacking libjs-popper.js (1.16.1+ds-6) ... 194s Selecting previously unselected package libmojolicious-perl. 194s Preparing to unpack .../40-libmojolicious-perl_9.39+dfsg-1_all.deb ... 194s Unpacking libmojolicious-perl (9.39+dfsg-1) ... 194s Selecting previously unselected package librole-tiny-perl. 194s Preparing to unpack .../41-librole-tiny-perl_2.002004-1_all.deb ... 194s Unpacking librole-tiny-perl (2.002004-1) ... 194s Selecting previously unselected package libsub-quote-perl. 194s Preparing to unpack .../42-libsub-quote-perl_2.006008-1ubuntu1_all.deb ... 194s Unpacking libsub-quote-perl (2.006008-1ubuntu1) ... 194s Selecting previously unselected package libmoo-perl. 194s Preparing to unpack .../43-libmoo-perl_2.005005-1_all.deb ... 194s Unpacking libmoo-perl (2.005005-1) ... 194s Selecting previously unselected package libtype-tiny-perl. 194s Preparing to unpack .../44-libtype-tiny-perl_2.004000-2_all.deb ... 194s Unpacking libtype-tiny-perl (2.004000-2) ... 194s Selecting previously unselected package libmoox-typetiny-perl. 194s Preparing to unpack .../45-libmoox-typetiny-perl_0.002003-4_all.deb ... 194s Unpacking libmoox-typetiny-perl (0.002003-4) ... 194s Selecting previously unselected package libpath-tiny-perl. 194s Preparing to unpack .../46-libpath-tiny-perl_0.148-1_all.deb ... 194s Unpacking libpath-tiny-perl (0.148-1) ... 194s Selecting previously unselected package libref-util-perl. 194s Preparing to unpack .../47-libref-util-perl_0.204-2_all.deb ... 194s Unpacking libref-util-perl (0.204-2) ... 194s Selecting previously unselected package libsafe-isa-perl. 194s Preparing to unpack .../48-libsafe-isa-perl_1.000010-1_all.deb ... 194s Unpacking libsafe-isa-perl (1.000010-1) ... 194s Selecting previously unselected package libstrictures-perl. 194s Preparing to unpack .../49-libstrictures-perl_2.000006-1_all.deb ... 194s Unpacking libstrictures-perl (2.000006-1) ... 194s Selecting previously unselected package libyaml-pp-perl. 194s Preparing to unpack .../50-libyaml-pp-perl_0.39.0-1_all.deb ... 194s Unpacking libyaml-pp-perl (0.39.0-1) ... 194s Selecting previously unselected package libjson-schema-modern-perl. 194s Preparing to unpack .../51-libjson-schema-modern-perl_0.620-1_all.deb ... 194s Unpacking libjson-schema-modern-perl (0.620-1) ... 194s Selecting previously unselected package pkg-perl-autopkgtest. 194s Preparing to unpack .../52-pkg-perl-autopkgtest_0.82_all.deb ... 194s Unpacking pkg-perl-autopkgtest (0.82) ... 194s Setting up javascript-common (12+nmu1) ... 194s Setting up libsafe-isa-perl (1.000010-1) ... 194s Setting up libclass-inspector-perl (1.36-3) ... 194s Setting up libdynaloader-functions-perl (0.004-2) ... 194s Setting up libclass-method-modifiers-perl (2.15-1) ... 194s Setting up libjs-popper.js (1.16.1+ds-6) ... 194s Setting up libsub-identify-perl (0.14-3build4) ... 194s Setting up libcpanel-json-xs-perl:amd64 (4.39-2) ... 194s Setting up libio-stringy-perl (2.113-2) ... 194s Setting up libyaml-pp-perl (0.39.0-1) ... 194s Setting up libtry-tiny-perl (0.32-1) ... 194s Setting up libsub-install-perl (0.929-1) ... 194s Setting up libautovivification-perl:amd64 (0.18-2build5) ... 194s Setting up libref-util-perl (0.204-2) ... 194s Setting up libvariable-magic-perl (0.64-1build1) ... 194s Setting up libb-hooks-op-check-perl:amd64 (0.22-3build2) ... 194s Setting up libparams-util-perl (1.102-3build1) ... 194s Setting up libsub-exporter-progressive-perl (0.001013-3) ... 194s Setting up libsub-name-perl:amd64 (0.28-1) ... 194s Setting up libjs-highlight.js (9.18.5+dfsg1-2) ... 194s Setting up node-popper2 (2.11.2-9) ... 194s Setting up libpath-tiny-perl (0.148-1) ... 194s Setting up librole-tiny-perl (2.002004-1) ... 194s Setting up libfile-sharedir-perl (1.118-3) ... 195s Setting up libstrictures-perl (2.000006-1) ... 195s Setting up libsub-quote-perl (2.006008-1ubuntu1) ... 195s Setting up libclass-xsaccessor-perl (1.19-4build6) ... 195s Setting up libexporter-tiny-perl (1.006002-1) ... 195s Setting up libjs-bootstrap5 (5.3.8+dfsg-1) ... 195s Setting up dctrl-tools (2.24-3build3) ... 195s Setting up autodep8 (0.30) ... 195s Setting up libmojolicious-perl (9.39+dfsg-1) ... 195s Setting up libtype-tiny-perl (2.004000-2) ... 195s Setting up libdevel-callchecker-perl:amd64 (0.009-2) ... 195s Setting up libxs-parse-keyword-perl (0.49-1) ... 195s Setting up libdata-optlist-perl (0.114-1) ... 195s Setting up pkg-perl-autopkgtest (0.82) ... 195s Setting up libsyntax-keyword-try-perl (0.30-1) ... 195s Setting up libsub-exporter-perl (0.990-1) ... 195s Setting up libfeature-compat-try-perl (0.05-1) ... 195s Setting up libparams-classify-perl:amd64 (0.015-2build6) ... 195s Setting up libmodule-runtime-perl (0.018-1) ... 195s Setting up libmodule-implementation-perl (0.09-2) ... 195s Setting up libpackage-stash-perl (0.40-1) ... 195s Setting up libimport-into-perl (1.002005-2) ... 195s Setting up libmoo-perl (2.005005-1) ... 195s Setting up libmoox-typetiny-perl (0.002003-4) ... 195s Setting up libparams-validate-perl:amd64 (1.31-2build4) ... 195s Setting up libb-hooks-endofscope-perl (0.28-2) ... 195s Setting up libnamespace-clean-perl (0.27-2) ... 195s Setting up libbuiltin-compat-perl (0.003003-2) ... 195s Setting up libgetopt-long-descriptive-perl (0.116-2) ... 195s Setting up libjson-schema-modern-perl (0.620-1) ... 195s Processing triggers for man-db (2.13.1-1) ... 198s autopkgtest [09:31:55]: test autodep8-perl: /usr/share/pkg-perl-autopkgtest/runner runtime-deps 198s autopkgtest [09:31:55]: test autodep8-perl: [----------------------- 199s /usr/share/pkg-perl-autopkgtest/runtime-deps.d/use.t .. 199s 1..4 199s ok 1 - /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 exited successfully 199s ok 2 - /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 produced no (non-whitelisted) output 199s ok 3 - env PERL_DL_NONLAZY=1 /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 exited successfully 199s ok 4 - env PERL_DL_NONLAZY=1 /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 produced no (non-whitelisted) output 199s ok 199s All tests successful. 199s Files=1, Tests=4, 0 wallclock secs ( 0.01 usr 0.00 sys + 0.44 cusr 0.04 csys = 0.49 CPU) 199s Result: PASS 199s autopkgtest [09:31:56]: test autodep8-perl: -----------------------] 200s autopkgtest [09:31:56]: test autodep8-perl: - - - - - - - - - - results - - - - - - - - - - 200s autodep8-perl PASS (superficial) 200s autopkgtest [09:31:57]: test autodep8-perl-recommends: preparing testbed 200s Reading package lists... 200s Building dependency tree... 200s Reading state information... 200s Solving dependencies... 200s The following NEW packages will be installed: 200s libalgorithm-c3-perl libclass-c3-perl libclass-data-inheritable-perl 200s libclass-singleton-perl libclone-perl libclone-pp-perl 200s libdata-validate-domain-perl libdatetime-format-rfc3339-perl 200s libdatetime-locale-perl libdatetime-perl libdatetime-timezone-perl 200s libdevel-stacktrace-perl libemail-address-xs-perl libeval-closure-perl 200s libexception-class-perl libmro-compat-perl libnamespace-autoclean-perl 200s libnet-domain-tld-perl libnet-idn-encode-perl 200s libparams-validationcompiler-perl libref-util-xs-perl libsereal-decoder-perl 200s libsereal-encoder-perl libsereal-perl libspecio-perl libtime-moment-perl 200s libtype-tiny-xs-perl libxstring-perl 200s 0 upgraded, 28 newly installed, 0 to remove and 0 not upgraded. 200s Need to get 4348 kB of archives. 200s After this operation, 34.4 MB of additional disk space will be used. 200s Get:1 http://ftpmaster.internal/ubuntu resolute/universe amd64 libalgorithm-c3-perl all 0.11-2 [10.2 kB] 200s Get:2 http://ftpmaster.internal/ubuntu resolute/universe amd64 libclass-c3-perl all 0.35-2 [18.4 kB] 200s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 libclass-data-inheritable-perl all 0.10-1 [8038 B] 200s Get:4 http://ftpmaster.internal/ubuntu resolute/universe amd64 libclass-singleton-perl all 1.6-2 [11.5 kB] 200s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 libclone-perl amd64 0.47-1 [10.7 kB] 200s Get:6 http://ftpmaster.internal/ubuntu resolute/universe amd64 libclone-pp-perl all 1.08-2 [8534 B] 200s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 libnet-domain-tld-perl all 1.75-4 [29.0 kB] 200s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 libdata-validate-domain-perl all 0.15-1 [10.4 kB] 200s Get:9 http://ftpmaster.internal/ubuntu resolute/universe amd64 libnamespace-autoclean-perl all 0.31-1 [11.9 kB] 200s Get:10 http://ftpmaster.internal/ubuntu resolute/universe amd64 libeval-closure-perl all 0.14-3 [10.1 kB] 200s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 libdevel-stacktrace-perl all 2.0500-1 [22.1 kB] 200s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 libexception-class-perl all 1.45-1 [28.6 kB] 200s Get:13 http://ftpmaster.internal/ubuntu resolute/universe amd64 libparams-validationcompiler-perl all 0.31-1 [28.3 kB] 200s Get:14 http://ftpmaster.internal/ubuntu resolute/universe amd64 libmro-compat-perl all 0.15-2 [10.1 kB] 200s Get:15 http://ftpmaster.internal/ubuntu resolute/universe amd64 libxstring-perl amd64 0.005-2build4 [7940 B] 200s Get:16 http://ftpmaster.internal/ubuntu resolute/universe amd64 libspecio-perl all 0.53-1 [129 kB] 200s Get:17 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdatetime-locale-perl all 1:1.41-1 [3193 kB] 201s Get:18 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdatetime-timezone-perl all 1:2.65-1+2025b [260 kB] 201s Get:19 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdatetime-perl amd64 2:1.65-1build3 [95.8 kB] 201s Get:20 http://ftpmaster.internal/ubuntu resolute/universe amd64 libdatetime-format-rfc3339-perl all 1.10.0-1 [8154 B] 201s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 libemail-address-xs-perl amd64 1.05-1build5 [29.5 kB] 201s Get:22 http://ftpmaster.internal/ubuntu resolute/universe amd64 libnet-idn-encode-perl amd64 2.500-5build1 [84.0 kB] 201s Get:23 http://ftpmaster.internal/ubuntu resolute/universe amd64 libref-util-xs-perl amd64 0.117-2build5 [12.8 kB] 201s Get:24 http://ftpmaster.internal/ubuntu resolute/main amd64 libsereal-decoder-perl amd64 5.004+ds-1build5 [101 kB] 201s Get:25 http://ftpmaster.internal/ubuntu resolute/main amd64 libsereal-encoder-perl amd64 5.004+ds-1build4 [105 kB] 201s Get:26 http://ftpmaster.internal/ubuntu resolute/universe amd64 libsereal-perl all 5.004-1 [8770 B] 201s Get:27 http://ftpmaster.internal/ubuntu resolute/main amd64 libtime-moment-perl amd64 0.44-2build5 [71.6 kB] 201s Get:28 http://ftpmaster.internal/ubuntu resolute/universe amd64 libtype-tiny-xs-perl amd64 0.025-2build1 [25.0 kB] 201s Fetched 4348 kB in 0s (13.4 MB/s) 201s Selecting previously unselected package libalgorithm-c3-perl. 201s (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 ... 80317 files and directories currently installed.) 201s Preparing to unpack .../00-libalgorithm-c3-perl_0.11-2_all.deb ... 201s Unpacking libalgorithm-c3-perl (0.11-2) ... 201s Selecting previously unselected package libclass-c3-perl. 201s Preparing to unpack .../01-libclass-c3-perl_0.35-2_all.deb ... 201s Unpacking libclass-c3-perl (0.35-2) ... 201s Selecting previously unselected package libclass-data-inheritable-perl. 201s Preparing to unpack .../02-libclass-data-inheritable-perl_0.10-1_all.deb ... 201s Unpacking libclass-data-inheritable-perl (0.10-1) ... 201s Selecting previously unselected package libclass-singleton-perl. 201s Preparing to unpack .../03-libclass-singleton-perl_1.6-2_all.deb ... 201s Unpacking libclass-singleton-perl (1.6-2) ... 201s Selecting previously unselected package libclone-perl:amd64. 201s Preparing to unpack .../04-libclone-perl_0.47-1_amd64.deb ... 201s Unpacking libclone-perl:amd64 (0.47-1) ... 201s Selecting previously unselected package libclone-pp-perl. 201s Preparing to unpack .../05-libclone-pp-perl_1.08-2_all.deb ... 201s Unpacking libclone-pp-perl (1.08-2) ... 201s Selecting previously unselected package libnet-domain-tld-perl. 201s Preparing to unpack .../06-libnet-domain-tld-perl_1.75-4_all.deb ... 201s Unpacking libnet-domain-tld-perl (1.75-4) ... 201s Selecting previously unselected package libdata-validate-domain-perl. 201s Preparing to unpack .../07-libdata-validate-domain-perl_0.15-1_all.deb ... 201s Unpacking libdata-validate-domain-perl (0.15-1) ... 201s Selecting previously unselected package libnamespace-autoclean-perl. 201s Preparing to unpack .../08-libnamespace-autoclean-perl_0.31-1_all.deb ... 201s Unpacking libnamespace-autoclean-perl (0.31-1) ... 201s Selecting previously unselected package libeval-closure-perl. 201s Preparing to unpack .../09-libeval-closure-perl_0.14-3_all.deb ... 201s Unpacking libeval-closure-perl (0.14-3) ... 201s Selecting previously unselected package libdevel-stacktrace-perl. 201s Preparing to unpack .../10-libdevel-stacktrace-perl_2.0500-1_all.deb ... 201s Unpacking libdevel-stacktrace-perl (2.0500-1) ... 201s Selecting previously unselected package libexception-class-perl. 201s Preparing to unpack .../11-libexception-class-perl_1.45-1_all.deb ... 201s Unpacking libexception-class-perl (1.45-1) ... 201s Selecting previously unselected package libparams-validationcompiler-perl. 201s Preparing to unpack .../12-libparams-validationcompiler-perl_0.31-1_all.deb ... 201s Unpacking libparams-validationcompiler-perl (0.31-1) ... 201s Selecting previously unselected package libmro-compat-perl. 201s Preparing to unpack .../13-libmro-compat-perl_0.15-2_all.deb ... 201s Unpacking libmro-compat-perl (0.15-2) ... 201s Selecting previously unselected package libxstring-perl:amd64. 201s Preparing to unpack .../14-libxstring-perl_0.005-2build4_amd64.deb ... 201s Unpacking libxstring-perl:amd64 (0.005-2build4) ... 201s Selecting previously unselected package libspecio-perl. 201s Preparing to unpack .../15-libspecio-perl_0.53-1_all.deb ... 201s Unpacking libspecio-perl (0.53-1) ... 201s Selecting previously unselected package libdatetime-locale-perl. 201s Preparing to unpack .../16-libdatetime-locale-perl_1%3a1.41-1_all.deb ... 201s Unpacking libdatetime-locale-perl (1:1.41-1) ... 201s Selecting previously unselected package libdatetime-timezone-perl. 201s Preparing to unpack .../17-libdatetime-timezone-perl_1%3a2.65-1+2025b_all.deb ... 201s Unpacking libdatetime-timezone-perl (1:2.65-1+2025b) ... 201s Selecting previously unselected package libdatetime-perl. 201s Preparing to unpack .../18-libdatetime-perl_2%3a1.65-1build3_amd64.deb ... 201s Unpacking libdatetime-perl (2:1.65-1build3) ... 201s Selecting previously unselected package libdatetime-format-rfc3339-perl. 201s Preparing to unpack .../19-libdatetime-format-rfc3339-perl_1.10.0-1_all.deb ... 201s Unpacking libdatetime-format-rfc3339-perl (1.10.0-1) ... 201s Selecting previously unselected package libemail-address-xs-perl. 201s Preparing to unpack .../20-libemail-address-xs-perl_1.05-1build5_amd64.deb ... 201s Unpacking libemail-address-xs-perl (1.05-1build5) ... 201s Selecting previously unselected package libnet-idn-encode-perl. 201s Preparing to unpack .../21-libnet-idn-encode-perl_2.500-5build1_amd64.deb ... 201s Unpacking libnet-idn-encode-perl (2.500-5build1) ... 201s Selecting previously unselected package libref-util-xs-perl. 201s Preparing to unpack .../22-libref-util-xs-perl_0.117-2build5_amd64.deb ... 201s Unpacking libref-util-xs-perl (0.117-2build5) ... 201s Selecting previously unselected package libsereal-decoder-perl. 201s Preparing to unpack .../23-libsereal-decoder-perl_5.004+ds-1build5_amd64.deb ... 201s Unpacking libsereal-decoder-perl (5.004+ds-1build5) ... 201s Selecting previously unselected package libsereal-encoder-perl. 201s Preparing to unpack .../24-libsereal-encoder-perl_5.004+ds-1build4_amd64.deb ... 201s Unpacking libsereal-encoder-perl (5.004+ds-1build4) ... 201s Selecting previously unselected package libsereal-perl. 201s Preparing to unpack .../25-libsereal-perl_5.004-1_all.deb ... 201s Unpacking libsereal-perl (5.004-1) ... 201s Selecting previously unselected package libtime-moment-perl. 201s Preparing to unpack .../26-libtime-moment-perl_0.44-2build5_amd64.deb ... 201s Unpacking libtime-moment-perl (0.44-2build5) ... 201s Selecting previously unselected package libtype-tiny-xs-perl:amd64. 201s Preparing to unpack .../27-libtype-tiny-xs-perl_0.025-2build1_amd64.deb ... 201s Unpacking libtype-tiny-xs-perl:amd64 (0.025-2build1) ... 201s Setting up libref-util-xs-perl (0.117-2build5) ... 201s Setting up libnet-idn-encode-perl (2.500-5build1) ... 201s Setting up libclone-perl:amd64 (0.47-1) ... 201s Setting up libclass-singleton-perl (1.6-2) ... 201s Setting up libtime-moment-perl (0.44-2build5) ... 201s Setting up libxstring-perl:amd64 (0.005-2build4) ... 201s Setting up libsereal-encoder-perl (5.004+ds-1build4) ... 201s Setting up libclass-data-inheritable-perl (0.10-1) ... 201s Setting up libalgorithm-c3-perl (0.11-2) ... 201s Setting up libnet-domain-tld-perl (1.75-4) ... 201s Setting up libtype-tiny-xs-perl:amd64 (0.025-2build1) ... 201s Setting up libdata-validate-domain-perl (0.15-1) ... 201s Setting up libdevel-stacktrace-perl (2.0500-1) ... 201s Setting up libnamespace-autoclean-perl (0.31-1) ... 201s Setting up libsereal-decoder-perl (5.004+ds-1build5) ... 201s Setting up libclone-pp-perl (1.08-2) ... 201s Setting up libeval-closure-perl (0.14-3) ... 201s Setting up libemail-address-xs-perl (1.05-1build5) ... 201s Setting up libsereal-perl (5.004-1) ... 201s Setting up libexception-class-perl (1.45-1) ... 201s Setting up libclass-c3-perl (0.35-2) ... 201s Setting up libmro-compat-perl (0.15-2) ... 201s Setting up libparams-validationcompiler-perl (0.31-1) ... 201s Setting up libspecio-perl (0.53-1) ... 201s Setting up libdatetime-locale-perl (1:1.41-1) ... 201s Setting up libdatetime-timezone-perl (1:2.65-1+2025b) ... 201s Setting up libdatetime-perl (2:1.65-1build3) ... 201s Setting up libdatetime-format-rfc3339-perl (1.10.0-1) ... 201s Processing triggers for man-db (2.13.1-1) ... 202s autopkgtest [09:31:59]: test autodep8-perl-recommends: /usr/share/pkg-perl-autopkgtest/runner runtime-deps-and-recommends 202s autopkgtest [09:31:59]: test autodep8-perl-recommends: [----------------------- 204s /usr/share/pkg-perl-autopkgtest/runtime-deps-and-recommends.d/syntax.t .. 204s 1..4 204s ok 1 - Package libjson-schema-modern-perl is known to dpkg 204s ok 2 - Got status information for package libjson-schema-modern-perl 204s ok 3 - Got file list for package libjson-schema-modern-perl 204s # Subtest: all modules in libjson-schema-modern-perl pass the syntax check 204s 1..16 204s ok 1 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Annotation.pm exited successfully 204s ok 2 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Document.pm exited successfully 204s ok 3 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Error.pm exited successfully 204s ok 4 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Result.pm exited successfully 204s ok 5 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/ResultNode.pm exited successfully 204s ok 6 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Utilities.pm exited successfully 204s ok 7 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Applicator.pm exited successfully 204s ok 8 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Content.pm exited successfully 204s ok 9 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Core.pm exited successfully 204s ok 10 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/FormatAnnotation.pm exited successfully 204s ok 11 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/FormatAssertion.pm exited successfully 204s ok 12 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/MetaData.pm exited successfully 204s ok 13 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Unevaluated.pm exited successfully 204s ok 14 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Validation.pm exited successfully 204s ok 15 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary.pm exited successfully 204s ok 16 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern.pm exited successfully 204s ok 4 - all modules in libjson-schema-modern-perl pass the syntax check 204s ok 204s All tests successful. 204s Files=1, Tests=4, 2 wallclock secs ( 0.01 usr 0.00 sys + 1.74 cusr 0.19 csys = 1.94 CPU) 204s Result: PASS 205s autopkgtest [09:32:02]: test autodep8-perl-recommends: -----------------------] 205s autopkgtest [09:32:02]: test autodep8-perl-recommends: - - - - - - - - - - results - - - - - - - - - - 205s autodep8-perl-recommends PASS (superficial) 205s autopkgtest [09:32:02]: @@@@@@@@@@@@@@@@@@@@ summary 205s autodep8-perl-build-deps PASS 205s autodep8-perl PASS (superficial) 205s autodep8-perl-recommends PASS (superficial)